home *** CD-ROM | disk | FTP | other *** search
/ Mac Power 1997 January / macpower199701.bin / AMUG / Programming_10 / Videotoolbox 96-08-22-c.sit / VideoToolbox / (Utilities) / CalibrateLuminance / CalibrateLuminance.c < prev    next >
MacBinary  |  1996-03-07  |  43.6 KB  |  [TEXT/CWIE]

open in: MacOS 8.1     |     Win98     |     DOS

view JSON data     |     view as text

This file was processed as: MacBinary (archive/macBinary).

You can browse this item here: CalibrateLuminance.c

ConfidenceProgramDetectionMatch TypeSupport
66% dexvert Compact Compressed (Unix) (archive/compact) ext Supported
10% dexvert MacBinary (archive/macBinary) fallback Supported
1% dexvert Text File (text/txt) fallback Supported
100% file MacBinary II, inited, Thu Mar 7 23:26:56 1996, modified Thu Mar 7 23:26:56 1996, creator 'CWIE', type ASCII, 43548 bytes "CalibrateLuminance.c" , at 0xaa9c 840 bytes resource default (weak)
99% file data default
49% TrID Macintosh plain text (MacBinary) default
33% TrID raw Group 3 FAX bitmap default (weak)
16% TrID MacBinary 2 default (weak)
100% siegfried fmt/1762 MacBinary (II) default
100% lsar MacBinary default


id metadata
keyvalue
macFileType[TEXT]
macFileCreator[CWIE]



hex view
+--------+-------------------------+-------------------------+--------+--------+
|00000000| 00 14 43 61 6c 69 62 72 | 61 74 65 4c 75 6d 69 6e |..Calibr|ateLumin|
|00000010| 61 6e 63 65 2e 63 00 00 | 00 00 00 00 00 00 00 00 |ance.c..|........|
|00000020| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000030| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000040| 00 54 45 58 54 43 57 49 | 45 01 00 00 00 00 00 00 |.TEXTCWI|E.......|
|00000050| 00 00 00 00 00 aa 1c 00 | 00 03 48 ad 65 67 90 ad |........|..H.eg..|
|00000060| 65 67 90 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |eg......|........|
|00000070| 00 00 00 00 00 00 00 00 | 00 00 81 81 ca b8 00 00 |........|........|
|00000080| 2f 2a 0d 43 61 6c 69 62 | 72 61 74 65 4c 75 6d 69 |/*.Calib|rateLumi|
|00000090| 6e 61 6e 63 65 2e 63 0d | 62 79 20 44 65 6e 69 73 |nance.c.|by Denis|
|000000a0| 20 50 65 6c 6c 69 2c 20 | 4c 61 6e 20 5a 68 61 6e | Pelli, |Lan Zhan|
|000000b0| 67 2c 20 61 6e 64 20 50 | 72 65 65 74 69 20 56 65 |g, and P|reeti Ve|
|000000c0| 72 67 68 65 73 65 0d 59 | 6f 75 20 77 69 6c 6c 20 |rghese.Y|ou will |
|000000d0| 6e 65 65 64 20 22 4e 75 | 6d 65 72 69 63 61 6c 20 |need "Nu|merical |
|000000e0| 52 65 63 69 70 65 73 20 | 69 6e 20 43 22 20 69 6e |Recipes |in C" in|
|000000f0| 20 6f 72 64 65 72 20 74 | 6f 20 63 6f 6d 70 69 6c | order t|o compil|
|00000100| 65 20 74 68 69 73 20 66 | 69 6c 65 3b 20 73 65 65 |e this f|ile; see|
|00000110| 0d 6c 69 6d 69 74 61 74 | 69 6f 6e 73 20 62 65 6c |.limitat|ions bel|
|00000120| 6f 77 2e 0d 0d 55 53 45 | 0d 0d 59 6f 75 20 6d 75 |ow...USE|..You mu|
|00000130| 73 74 20 72 75 6e 20 74 | 68 69 73 20 70 72 6f 67 |st run t|his prog|
|00000140| 72 61 6d 20 28 6f 72 20 | 79 6f 75 72 20 6f 77 6e |ram (or |your own|
|00000150| 20 65 71 75 69 76 61 6c | 65 6e 74 29 20 74 6f 20 | equival|ent) to |
|00000160| 63 61 6c 69 62 72 61 74 | 65 20 79 6f 75 72 20 76 |calibrat|e your v|
|00000170| 69 64 65 6f 20 63 61 72 | 64 2c 0d 49 53 52 20 56 |ideo car|d,.ISR V|
|00000180| 69 64 65 6f 20 41 74 74 | 65 6e 75 61 74 6f 72 2c |ideo Att|enuator,|
|00000190| 20 61 6e 64 20 6d 6f 6e | 6f 63 68 72 6f 6d 65 20 | and mon|ochrome |
|000001a0| 6d 6f 6e 69 74 6f 72 2c | 20 61 73 20 64 65 73 63 |monitor,| as desc|
|000001b0| 72 69 62 65 64 20 62 79 | 20 50 65 6c 6c 69 20 26 |ribed by| Pelli &|
|000001c0| 20 5a 68 61 6e 67 0d 28 | 31 39 39 31 29 2e 0d 0d | Zhang.(|1991)...|
|000001d0| 44 2e 47 2e 20 50 65 6c | 6c 69 20 61 6e 64 20 4c |D.G. Pel|li and L|
|000001e0| 2e 20 5a 68 61 6e 67 20 | 28 31 39 39 31 29 20 41 |. Zhang |(1991) A|
|000001f0| 63 63 75 72 61 74 65 20 | 63 6f 6e 74 72 6f 6c 20 |ccurate |control |
|00000200| 6f 66 20 63 6f 6e 74 72 | 61 73 74 20 6f 6e 20 6d |of contr|ast on m|
|00000210| 69 63 72 6f 63 6f 6d 70 | 75 74 65 72 0d 64 69 73 |icrocomp|uter.dis|
|00000220| 70 6c 61 79 73 2e 20 56 | 69 73 69 6f 6e 20 52 65 |plays. V|ision Re|
|00000230| 73 65 61 72 63 68 2c 20 | 33 31 3a 31 33 33 37 2d |search, |31:1337-|
|00000240| 31 33 36 30 2e 0d 0d 54 | 68 65 20 70 72 6f 67 72 |1360...T|he progr|
|00000250| 61 6d 27 73 20 72 65 73 | 75 6c 74 73 20 61 72 65 |am's res|ults are|
|00000260| 20 73 74 6f 72 65 64 20 | 69 6e 20 61 20 66 69 6c | stored |in a fil|
|00000270| 65 20 63 61 6c 6c 65 64 | 20 4c 75 6d 69 6e 61 6e |e called| Luminan|
|00000280| 63 65 52 65 63 6f 72 64 | 3f 2e 68 20 74 68 61 74 |ceRecord|?.h that|
|00000290| 20 79 6f 75 0d 63 61 6e | 20 74 68 65 6e 20 75 73 | you.can| then us|
|000002a0| 65 20 69 6e 20 74 68 65 | 20 72 65 73 74 20 6f 66 |e in the| rest of|
|000002b0| 20 79 6f 75 72 20 43 20 | 70 72 6f 67 72 61 6d 73 | your C |programs|
|000002c0| 2e 20 22 3f 22 20 77 69 | 6c 6c 20 62 65 20 61 20 |. "?" wi|ll be a |
|000002d0| 64 69 67 69 74 20 69 6e | 64 69 63 61 74 69 6e 67 |digit in|dicating|
|000002e0| 0d 77 68 69 63 68 20 6d | 6f 6e 69 74 6f 72 2e 20 |.which m|onitor. |
|000002f0| 4c 75 6d 69 6e 61 6e 63 | 65 52 65 63 6f 72 64 3f |Luminanc|eRecord?|
|00000300| 2e 68 20 64 65 73 63 72 | 69 62 65 73 20 74 68 65 |.h descr|ibes the|
|00000310| 20 67 61 69 6e 73 20 6f | 66 20 74 68 65 20 74 68 | gains o|f the th|
|00000320| 72 65 65 20 76 69 64 65 | 6f 0d 70 61 74 68 77 61 |ree vide|o.pathwa|
|00000330| 79 73 20 6f 66 20 79 6f | 75 72 20 76 69 64 65 6f |ys of yo|ur video|
|00000340| 20 63 61 72 64 20 61 6e | 64 20 49 53 52 20 56 69 | card an|d ISR Vi|
|00000350| 64 65 6f 20 41 74 74 65 | 6e 75 61 74 6f 72 2c 20 |deo Atte|nuator, |
|00000360| 61 6e 64 20 64 65 73 63 | 72 69 62 65 73 20 74 68 |and desc|ribes th|
|00000370| 65 20 67 61 6d 6d 61 0d | 66 75 6e 63 74 69 6f 6e |e gamma.|function|
|00000380| 20 6f 66 20 79 6f 75 72 | 20 6d 6f 6e 69 74 6f 72 | of your| monitor|
|00000390| 2c 20 74 6f 20 61 6c 6c | 6f 77 20 61 75 74 6f 6d |, to all|ow autom|
|000003a0| 61 74 69 63 20 67 61 6d | 6d 61 20 63 6f 72 72 65 |atic gam|ma corre|
|000003b0| 63 74 69 6f 6e 20 6c 61 | 74 65 72 2c 20 75 73 69 |ction la|ter, usi|
|000003c0| 6e 67 0d 53 65 74 4c 75 | 6d 69 6e 61 6e 63 65 28 |ng.SetLu|minance(|
|000003d0| 29 2c 20 65 74 63 2e 0d | 0d 54 68 65 72 65 20 61 |), etc..|.There a|
|000003e0| 72 65 20 74 77 6f 20 77 | 61 79 73 20 6f 66 20 75 |re two w|ays of u|
|000003f0| 73 69 6e 67 20 74 68 65 | 20 4c 75 6d 69 6e 61 6e |sing the| Luminan|
|00000400| 63 65 52 65 63 6f 72 64 | 20 66 69 6c 65 2e 20 59 |ceRecord| file. Y|
|00000410| 6f 75 20 63 61 6e 20 75 | 73 65 20 74 68 65 0d 70 |ou can u|se the.p|
|00000420| 72 65 70 72 6f 63 65 73 | 73 6f 72 20 23 69 6e 63 |reproces|sor #inc|
|00000430| 6c 75 64 65 20 73 74 61 | 74 65 6d 65 6e 74 2c 20 |lude sta|tement, |
|00000440| 69 6e 20 74 68 65 20 6d | 69 64 73 74 20 6f 66 20 |in the m|idst of |
|00000450| 79 6f 75 72 20 43 20 63 | 6f 64 65 2c 20 70 72 6f |your C c|ode, pro|
|00000460| 76 69 64 65 64 20 79 6f | 75 27 76 65 0d 67 6f 74 |vided yo|u've.got|
|00000470| 20 61 20 4c 75 6d 69 6e | 61 6e 63 65 52 65 63 6f | a Lumin|anceReco|
|00000480| 72 64 20 73 74 72 75 63 | 74 75 72 65 20 63 61 6c |rd struc|ture cal|
|00000490| 6c 65 64 20 4c 52 2e 20 | 4f 72 20 79 6f 75 20 63 |led LR. |Or you c|
|000004a0| 61 6e 20 75 73 65 20 74 | 68 65 20 56 69 64 65 6f |an use t|he Video|
|000004b0| 54 6f 6f 6c 62 6f 78 0d | 72 6f 75 74 69 6e 65 20 |Toolbox.|routine |
|000004c0| 63 61 6c 6c 65 64 20 52 | 65 61 64 4c 75 6d 69 6e |called R|eadLumin|
|000004d0| 61 6e 63 65 52 65 63 6f | 72 64 28 29 20 74 6f 20 |anceReco|rd() to |
|000004e0| 72 65 61 64 20 74 68 65 | 20 64 61 74 61 20 28 61 |read the| data (a|
|000004f0| 74 20 72 75 6e 74 69 6d | 65 29 20 69 6e 74 6f 20 |t runtim|e) into |
|00000500| 61 0d 4c 75 6d 69 6e 61 | 6e 63 65 52 65 63 6f 72 |a.Lumina|nceRecor|
|00000510| 64 20 6f 66 20 61 6e 79 | 20 6e 61 6d 65 2e 0d 0d |d of any| name...|
|00000520| 46 6f 72 20 68 69 73 74 | 6f 72 69 63 61 6c 20 72 |For hist|orical r|
|00000530| 65 61 73 6f 6e 73 20 74 | 68 69 73 20 70 72 6f 67 |easons t|his prog|
|00000540| 72 61 6d 20 6e 6f 74 20 | 6f 6e 6c 79 20 6d 65 61 |ram not |only mea|
|00000550| 73 75 72 65 73 20 74 68 | 65 20 67 61 6d 6d 61 20 |sures th|e gamma |
|00000560| 66 75 6e 63 74 69 6f 6e | 2c 20 62 75 74 0d 61 6c |function|, but.al|
|00000570| 73 6f 20 66 69 74 73 20 | 61 20 76 61 72 69 65 74 |so fits |a variet|
|00000580| 79 20 6f 66 20 66 75 6e | 63 74 69 6f 6e 73 20 74 |y of fun|ctions t|
|00000590| 6f 20 69 74 2e 20 49 6e | 20 66 61 63 74 20 74 68 |o it. In| fact th|
|000005a0| 65 20 6c 61 74 65 73 74 | 20 69 6d 70 6c 65 6d 65 |e latest| impleme|
|000005b0| 6e 74 61 74 69 6f 6e 20 | 6f 66 0d 4c 75 6d 69 6e |ntation |of.Lumin|
|000005c0| 61 6e 63 65 2e 63 2c 20 | 77 68 69 63 68 20 69 73 |ance.c, |which is|
|000005d0| 20 74 68 65 20 6f 6e 6c | 79 20 72 6f 75 74 69 6e | the onl|y routin|
|000005e0| 65 20 74 68 61 74 20 6d | 61 6b 65 73 20 64 69 72 |e that m|akes dir|
|000005f0| 65 63 74 20 75 73 65 20 | 6f 66 20 74 68 65 20 67 |ect use |of the g|
|00000600| 61 6d 6d 61 0d 64 65 73 | 63 72 69 70 74 69 6f 6e |amma.des|cription|
|00000610| 2c 20 77 6f 75 6c 64 20 | 62 65 20 71 75 69 74 65 |, would |be quite|
|00000620| 20 63 6f 6e 74 65 6e 74 | 20 77 69 74 68 20 6a 75 | content| with ju|
|00000630| 73 74 20 74 68 65 20 74 | 61 62 75 6c 61 74 65 64 |st the t|abulated|
|00000640| 20 67 61 6d 6d 61 20 66 | 75 6e 63 74 69 6f 6e 2e | gamma f|unction.|
|00000650| 20 41 74 0d 70 72 65 73 | 65 6e 74 20 74 68 65 20 | At.pres|ent the |
|00000660| 67 61 6d 6d 61 20 66 75 | 6e 63 74 69 6f 6e 20 69 |gamma fu|nction i|
|00000670| 73 20 74 61 62 75 6c 61 | 74 65 64 20 76 65 72 79 |s tabula|ted very|
|00000680| 20 63 6f 61 72 73 65 6c | 79 20 62 79 20 43 61 6c | coarsel|y by Cal|
|00000690| 69 62 72 61 74 65 4c 75 | 6d 69 6e 61 6e 63 65 2c |ibrateLu|minance,|
|000006a0| 20 73 6f 0d 69 74 20 64 | 6f 65 73 6e 27 74 20 62 | so.it d|oesn't b|
|000006b0| 6f 74 68 65 72 20 74 6f | 20 70 75 74 20 74 68 69 |other to| put thi|
|000006c0| 73 20 74 61 62 6c 65 20 | 69 6e 74 6f 20 74 68 65 |s table |into the|
|000006d0| 20 68 65 61 64 65 72 20 | 66 69 6c 65 20 4c 75 6d | header |file Lum|
|000006e0| 69 6e 61 6e 63 65 52 65 | 63 6f 72 64 2e 68 2e 0d |inanceRe|cord.h..|
|000006f0| 48 6f 77 65 76 65 72 2c | 20 69 66 20 79 6f 75 27 |However,| if you'|
|00000700| 64 20 72 61 74 68 65 72 | 20 77 72 69 74 65 20 79 |d rather| write y|
|00000710| 6f 75 72 20 6f 77 6e 20 | 73 75 62 73 74 69 74 75 |our own |substitu|
|00000720| 74 65 20 66 6f 72 20 74 | 68 69 73 20 70 72 6f 67 |te for t|his prog|
|00000730| 72 61 6d 2c 20 74 68 65 | 6e 20 49 0d 77 6f 75 6c |ram, the|n I.woul|
|00000740| 64 20 73 75 67 67 65 73 | 74 20 6a 75 73 74 20 6d |d sugges|t just m|
|00000750| 65 61 73 75 72 69 6e 67 | 20 74 68 65 20 6c 75 6d |easuring| the lum|
|00000760| 69 6e 61 6e 63 65 20 61 | 74 20 32 35 36 20 64 69 |inance a|t 256 di|
|00000770| 66 66 65 72 65 6e 74 20 | 6c 65 76 65 6c 73 20 28 |fferent |levels (|
|00000780| 66 72 6f 6d 20 30 20 74 | 6f 0d 56 4d 61 78 29 20 |from 0 t|o.VMax) |
|00000790| 61 6e 64 20 73 61 76 69 | 6e 67 20 74 68 65 20 74 |and savi|ng the t|
|000007a0| 61 62 6c 65 20 69 6e 20 | 74 68 65 20 68 65 61 64 |able in |the head|
|000007b0| 65 72 20 66 69 6c 65 2e | 20 59 6f 75 20 77 69 6c |er file.| You wil|
|000007c0| 6c 20 61 6c 73 6f 20 6e | 65 65 64 20 74 6f 20 6d |l also n|eed to m|
|000007d0| 65 61 73 75 72 65 0d 74 | 68 65 20 52 47 42 20 67 |easure.t|he RGB g|
|000007e0| 61 69 6e 73 2c 20 62 75 | 74 20 74 68 61 74 20 63 |ains, bu|t that c|
|000007f0| 61 6e 20 65 61 73 69 6c | 79 20 62 65 20 64 6f 6e |an easil|y be don|
|00000800| 65 20 64 69 72 65 63 74 | 6c 79 2c 20 75 73 69 6e |e direct|ly, usin|
|00000810| 67 20 61 6e 20 6f 73 63 | 69 6c 6c 6f 73 63 6f 70 |g an osc|illoscop|
|00000820| 65 2c 0d 72 61 74 68 65 | 72 20 74 68 61 6e 20 74 |e,.rathe|r than t|
|00000830| 72 79 69 6e 67 20 74 6f | 20 62 65 20 63 6c 65 76 |rying to| be clev|
|00000840| 65 72 2c 20 61 73 20 69 | 6e 20 68 65 72 65 2c 20 |er, as i|n here, |
|00000850| 77 68 65 72 65 20 77 65 | 20 69 6e 76 65 72 74 20 |where we| invert |
|00000860| 74 68 65 20 6e 6f 6e 6c | 69 6e 65 61 72 69 74 79 |the nonl|inearity|
|00000870| 20 74 6f 0d 69 6e 66 65 | 72 20 76 6f 6c 74 61 67 | to.infe|r voltag|
|00000880| 65 73 20 66 72 6f 6d 20 | 74 68 65 20 6e 6f 6e 6c |es from |the nonl|
|00000890| 69 6e 65 61 72 20 6c 75 | 6d 69 6e 61 6e 63 65 73 |inear lu|minances|
|000008a0| 20 74 68 61 74 20 77 65 | 20 6d 65 61 73 75 72 65 | that we| measure|
|000008b0| 2e 0d 0d 43 61 6c 69 62 | 72 61 74 65 4c 75 6d 69 |...Calib|rateLumi|
|000008c0| 6e 61 6e 63 65 20 61 6c | 73 6f 20 70 72 6f 64 75 |nance al|so produ|
|000008d0| 63 65 73 20 61 20 43 72 | 69 63 6b 65 74 47 72 61 |ces a Cr|icketGra|
|000008e0| 70 68 20 66 69 6c 65 2c | 20 43 61 6c 69 62 72 61 |ph file,| Calibra|
|000008f0| 74 65 4c 75 6d 69 6e 61 | 6e 63 65 25 64 2e 64 61 |teLumina|nce%d.da|
|00000900| 74 61 0d 28 77 68 65 72 | 65 20 25 64 20 69 73 20 |ta.(wher|e %d is |
|00000910| 72 65 70 6c 61 63 65 64 | 20 62 79 20 74 68 65 20 |replaced| by the |
|00000920| 6d 6f 6e 69 74 6f 72 20 | 6e 75 6d 62 65 72 29 2c |monitor |number),|
|00000930| 20 77 68 69 63 68 20 69 | 73 20 73 75 69 74 61 62 | which i|s suitab|
|00000940| 6c 65 20 66 6f 72 20 67 | 72 61 70 68 69 6e 67 20 |le for g|raphing |
|00000950| 74 68 65 0d 6d 6f 6e 69 | 74 6f 72 27 73 20 67 61 |the.moni|tor's ga|
|00000960| 6d 6d 61 20 66 75 6e 63 | 74 69 6f 6e 2e 20 55 73 |mma func|tion. Us|
|00000970| 65 20 74 68 65 20 43 72 | 69 63 6b 65 74 47 72 61 |e the Cr|icketGra|
|00000980| 70 68 20 66 6f 72 6d 61 | 74 20 66 69 6c 65 20 43 |ph forma|t file C|
|00000990| 61 6c 69 62 72 61 74 65 | 4c 75 6d 69 6e 61 6e 63 |alibrate|Luminanc|
|000009a0| 65 2e 66 6f 72 6d 61 74 | 2e 0d 0d 54 68 69 73 20 |e.format|...This |
|000009b0| 70 72 6f 67 72 61 6d 20 | 6d 65 61 73 75 72 65 73 |program |measures|
|000009c0| 20 74 68 65 20 6c 75 6d | 69 6e 61 6e 63 65 20 6f | the lum|inance o|
|000009d0| 66 20 61 20 70 61 74 63 | 68 20 6f 6e 20 74 68 65 |f a patc|h on the|
|000009e0| 20 73 63 72 65 65 6e 2c | 20 75 73 69 6e 67 20 61 | screen,| using a|
|000009f0| 20 70 68 6f 74 6f 6d 65 | 74 65 72 0d 61 6e 64 2c | photome|ter.and,|
|00000a00| 20 6f 70 74 69 6f 6e 61 | 6c 6c 79 2c 20 61 20 31 | optiona|lly, a 1|
|00000a10| 32 2d 62 69 74 20 41 6e | 61 6c 6f 67 20 74 6f 20 |2-bit An|alog to |
|00000a20| 44 69 67 69 74 61 6c 20 | 43 6f 6e 76 65 72 74 65 |Digital |Converte|
|00000a30| 72 20 28 41 44 43 29 2e | 20 49 66 20 79 6f 75 20 |r (ADC).| If you |
|00000a40| 68 61 76 65 20 61 20 44 | 61 74 61 0d 54 72 61 6e |have a D|ata.Tran|
|00000a50| 73 6c 61 74 69 6f 6e 20 | 46 6f 72 65 72 75 6e 6e |slation |Forerunn|
|00000a60| 65 72 20 41 6e 61 6c 6f | 67 2d 74 6f 2d 44 69 67 |er Analo|g-to-Dig|
|00000a70| 69 74 61 6c 20 63 61 72 | 64 2c 20 74 68 65 6e 20 |ital car|d, then |
|00000a80| 47 65 74 56 6f 6c 74 61 | 67 65 2e 63 20 77 69 6c |GetVolta|ge.c wil|
|00000a90| 6c 0d 61 75 74 6f 6d 61 | 74 69 63 61 6c 6c 79 20 |l.automa|tically |
|00000aa0| 66 69 6e 64 20 61 6e 64 | 20 75 73 65 20 69 74 2e |find and| use it.|
|00000ab0| 20 59 6f 75 20 63 61 6e | 20 73 65 74 20 74 68 65 | You can| set the|
|00000ac0| 20 4d 41 4e 55 41 4c 20 | 66 6c 61 67 20 74 6f 20 | MANUAL |flag to |
|00000ad0| 66 6f 72 63 65 20 6d 61 | 6e 75 61 6c 0d 6f 70 65 |force ma|nual.ope|
|00000ae0| 72 61 74 69 6f 6e 2e 20 | 49 66 20 79 6f 75 72 20 |ration. |If your |
|00000af0| 70 68 6f 74 6f 6d 65 74 | 65 72 20 68 61 73 20 61 |photomet|er has a|
|00000b00| 6e 20 61 6e 61 6c 6f 67 | 20 6f 75 74 70 75 74 2c |n analog| output,|
|00000b10| 20 69 74 27 73 20 63 6f | 6e 76 65 6e 69 65 6e 74 | it's co|nvenient|
|00000b20| 20 61 6e 64 20 6d 6f 72 | 65 0d 61 63 63 75 72 61 | and mor|e.accura|
|00000b30| 74 65 20 74 6f 20 68 61 | 76 65 20 61 6c 6c 20 74 |te to ha|ve all t|
|00000b40| 68 65 20 76 6f 6c 74 61 | 67 65 73 20 72 65 61 64 |he volta|ges read|
|00000b50| 20 69 6e 20 61 75 74 6f | 6d 61 74 69 63 61 6c 6c | in auto|maticall|
|00000b60| 79 20 76 69 61 20 61 6e | 20 41 44 43 2c 20 62 75 |y via an| ADC, bu|
|00000b70| 74 20 79 6f 75 0d 77 6f | 6e 27 74 20 6e 65 65 64 |t you.wo|n't need|
|00000b80| 20 74 6f 20 72 75 6e 20 | 43 61 6c 69 62 72 61 74 | to run |Calibrat|
|00000b90| 65 4c 75 6d 69 6e 61 6e | 63 65 20 76 65 72 79 20 |eLuminan|ce very |
|00000ba0| 6f 66 74 65 6e 2c 20 61 | 6e 64 20 79 6f 75 20 63 |often, a|nd you c|
|00000bb0| 61 6e 20 67 65 74 20 62 | 79 20 77 69 74 68 20 6d |an get b|y with m|
|00000bc0| 61 6e 75 61 6c 0d 63 61 | 6c 69 62 72 61 74 69 6f |anual.ca|libratio|
|00000bd0| 6e 2e 0d 0d 59 6f 75 20 | 73 68 6f 75 6c 64 20 73 |n...You |should s|
|00000be0| 65 74 20 74 68 65 20 62 | 61 63 6b 67 72 6f 75 6e |et the b|ackgroun|
|00000bf0| 64 20 6c 75 6d 69 6e 61 | 6e 63 65 20 74 6f 20 61 |d lumina|nce to a|
|00000c00| 70 70 72 6f 78 69 6d 61 | 74 65 6c 79 20 74 68 65 |pproxima|tely the|
|00000c10| 20 73 61 6d 65 20 76 61 | 6c 75 65 20 61 73 20 79 | same va|lue as y|
|00000c20| 6f 75 0d 77 69 6c 6c 20 | 75 73 65 20 69 6e 20 79 |ou.will |use in y|
|00000c30| 6f 75 72 20 65 78 70 65 | 72 69 6d 65 6e 74 2e 20 |our expe|riment. |
|00000c40| 4e 6f 74 65 20 74 68 61 | 74 20 74 68 65 20 63 68 |Note tha|t the ch|
|00000c50| 61 6e 6e 65 6c 73 20 67 | 61 69 6e 73 20 64 65 70 |annels g|ains dep|
|00000c60| 65 6e 64 20 6f 6e 20 74 | 68 65 20 44 41 43 73 20 |end on t|he DACs |
|00000c70| 61 73 0d 77 65 6c 6c 20 | 61 73 20 74 68 65 20 49 |as.well |as the I|
|00000c80| 53 52 20 56 69 64 65 6f | 20 41 74 74 65 6e 75 61 |SR Video| Attenua|
|00000c90| 74 6f 72 2c 20 61 6e 64 | 20 77 69 6c 6c 20 76 61 |tor, and| will va|
|00000ca0| 72 79 20 66 72 6f 6d 20 | 44 41 43 20 74 6f 20 44 |ry from |DAC to D|
|00000cb0| 41 43 20 62 79 20 b1 35 | 25 2e 20 54 68 61 74 27 |AC by .5|%. That'|
|00000cc0| 73 0d 77 68 79 20 79 6f | 75 20 6d 75 73 74 20 64 |s.why yo|u must d|
|00000cd0| 6f 20 74 68 69 73 20 63 | 61 6c 69 62 72 61 74 69 |o this c|alibrati|
|00000ce0| 6f 6e 20 79 6f 75 72 73 | 65 6c 66 20 75 73 69 6e |on yours|elf usin|
|00000cf0| 67 20 79 6f 75 72 20 6f | 77 6e 20 76 69 64 65 6f |g your o|wn video|
|00000d00| 20 63 61 72 64 20 61 6e | 64 20 6d 6f 6e 69 74 6f | card an|d monito|
|00000d10| 72 2e 0d 0d 54 68 69 73 | 20 70 72 6f 67 72 61 6d |r...This| program|
|00000d20| 20 63 61 6e 20 63 61 6c | 69 62 72 61 74 65 20 61 | can cal|ibrate a|
|00000d30| 6e 79 20 6f 66 20 79 6f | 75 72 20 73 63 72 65 65 |ny of yo|ur scree|
|00000d40| 6e 73 2c 20 69 6e 63 6c | 75 64 69 6e 67 20 74 68 |ns, incl|uding th|
|00000d50| 65 20 6d 61 69 6e 20 73 | 63 72 65 65 6e 2e 20 49 |e main s|creen. I|
|00000d60| 74 0d 6e 6f 77 20 77 6f | 72 6b 73 20 66 69 6e 65 |t.now wo|rks fine|
|00000d70| 20 77 69 74 68 20 61 20 | 73 69 6e 67 6c 65 20 73 | with a |single s|
|00000d80| 63 72 65 65 6e 2c 20 61 | 6c 74 65 72 6e 61 74 69 |creen, a|lternati|
|00000d90| 6e 67 20 74 68 65 20 75 | 73 65 72 20 64 69 61 6c |ng the u|ser dial|
|00000da0| 6f 67 20 77 69 74 68 20 | 74 68 65 0d 6d 65 61 73 |og with |the.meas|
|00000db0| 75 72 65 6d 65 6e 74 73 | 2e 0d 0d 4c 49 4d 49 54 |urements|...LIMIT|
|00000dc0| 41 54 49 4f 4e 53 0d 0d | 43 61 6c 69 62 72 61 74 |ATIONS..|Calibrat|
|00000dd0| 65 4c 75 6d 69 6e 61 6e | 63 65 20 75 73 65 73 20 |eLuminan|ce uses |
|00000de0| 72 6f 75 74 69 6e 65 73 | 20 66 72 6f 6d 20 4e 75 |routines| from Nu|
|00000df0| 6d 65 72 69 63 61 6c 20 | 52 65 63 69 70 65 73 20 |merical |Recipes |
|00000e00| 69 6e 20 43 20 74 6f 20 | 64 6f 20 74 68 65 0d 70 |in C to |do the.p|
|00000e10| 6f 6c 79 6e 6f 6d 69 61 | 6c 20 61 6e 64 20 70 6f |olynomia|l and po|
|00000e20| 77 65 72 20 6c 61 77 20 | 66 69 74 73 20 74 6f 20 |wer law |fits to |
|00000e30| 74 68 65 20 67 61 6d 6d | 61 20 66 75 6e 63 74 69 |the gamm|a functi|
|00000e40| 6f 6e 2e 20 54 68 65 79 | 27 72 65 20 63 6f 70 79 |on. They|'re copy|
|00000e50| 72 69 67 68 74 65 64 2c | 20 73 6f 20 49 0d 63 61 |righted,| so I.ca|
|00000e60| 6e 27 74 20 64 69 73 74 | 72 69 62 75 74 65 20 74 |n't dist|ribute t|
|00000e70| 68 65 6d 2e 20 4e 6f 74 | 65 3a 20 49 20 48 41 56 |hem. Not|e: I HAV|
|00000e80| 45 20 69 6e 63 6c 75 64 | 65 64 20 61 20 63 6f 6d |E includ|ed a com|
|00000e90| 70 69 6c 65 64 20 61 70 | 70 6c 69 63 61 74 69 6f |piled ap|plicatio|
|00000ea0| 6e 0d 43 61 6c 69 62 72 | 61 74 65 4c 75 6d 69 6e |n.Calibr|ateLumin|
|00000eb0| 61 6e 63 65 20 74 68 61 | 74 20 79 6f 75 20 63 61 |ance tha|t you ca|
|00000ec0| 6e 20 75 73 65 20 4e 4f | 57 2e 20 59 6f 75 20 6f |n use NO|W. You o|
|00000ed0| 6e 6c 79 20 6e 65 65 64 | 20 74 6f 20 62 75 79 20 |nly need| to buy |
|00000ee0| 74 68 65 20 4e 75 6d 65 | 72 69 63 61 6c 0d 52 65 |the Nume|rical.Re|
|00000ef0| 63 69 70 65 73 20 69 66 | 20 79 6f 75 20 77 61 6e |cipes if| you wan|
|00000f00| 74 20 74 6f 20 4d 4f 44 | 49 46 59 20 43 61 6c 69 |t to MOD|IFY Cali|
|00000f10| 62 72 61 74 65 4c 75 6d | 69 6e 61 6e 63 65 2e 63 |brateLum|inance.c|
|00000f20| 2e 20 53 65 65 20 22 49 | 6d 70 72 6f 76 65 20 4e |. See "I|mprove N|
|00000f30| 75 6d 65 72 69 63 61 6c | 20 52 65 63 69 70 65 73 |umerical| Recipes|
|00000f40| 22 20 0d 69 6e 20 74 68 | 65 20 56 69 64 65 6f 54 |" .in th|e VideoT|
|00000f50| 6f 6f 6c 62 6f 78 20 4e | 6f 74 65 73 20 66 6f 6c |oolbox N|otes fol|
|00000f60| 64 65 72 2e 0d 0d 48 49 | 53 54 4f 52 59 0d 0d 34 |der...HI|STORY..4|
|00000f70| 2f 32 35 2f 38 39 09 50 | 72 65 65 74 69 20 61 6e |/25/89.P|reeti an|
|00000f80| 64 20 44 65 6e 69 73 0d | 36 2f 31 38 2f 38 39 09 |d Denis.|6/18/89.|
|00000f90| 44 65 6e 69 73 20 61 64 | 64 65 64 20 6e 75 6d 65 |Denis ad|ded nume|
|00000fa0| 72 69 63 61 6c 20 64 69 | 73 70 6c 61 79 20 6f 66 |rical di|splay of|
|00000fb0| 20 63 6c 75 74 20 69 6e | 64 65 78 20 61 6e 64 20 | clut in|dex and |
|00000fc0| 74 72 69 70 6c 65 20 67 | 72 61 74 69 6e 67 20 66 |triple g|rating f|
|00000fd0| 6f 72 20 66 69 72 73 74 | 20 73 63 72 65 65 6e 2e |or first| screen.|
|00000fe0| 0d 38 2f 34 2f 38 39 09 | 44 65 6e 69 73 20 72 65 |.8/4/89.|Denis re|
|00000ff0| 70 6c 61 63 65 64 20 53 | 65 74 45 6e 74 72 69 65 |placed S|etEntrie|
|00001000| 73 20 63 61 6c 6c 20 62 | 79 20 47 44 53 65 74 45 |s call b|y GDSetE|
|00001010| 6e 74 72 69 65 73 2c 20 | 61 6e 64 20 67 65 6e 65 |ntries, |and gene|
|00001020| 72 61 6c 6c 79 20 75 70 | 64 61 74 65 64 20 65 76 |rally up|dated ev|
|00001030| 65 72 79 74 68 69 6e 67 | 2e 0d 38 2f 31 38 2f 38 |erything|..8/18/8|
|00001040| 39 09 4c 61 6e 20 4d 65 | 61 73 75 72 65 20 74 68 |9.Lan Me|asure th|
|00001050| 65 20 77 68 6f 6c 65 20 | 72 6f 75 74 69 6e 65 28 |e whole |routine(|
|00001060| 52 2b 47 2b 42 20 61 6e | 64 20 52 20 47 20 42 20 |R+G+B an|d R G B |
|00001070| 67 61 69 6e 29 20 34 30 | 20 74 69 6d 65 73 20 74 |gain) 40| times t|
|00001080| 6f 20 65 6c 69 6d 69 6e | 61 74 65 20 74 68 65 0d |o elimin|ate the.|
|00001090| 09 09 65 66 66 65 63 74 | 20 6f 66 20 73 63 72 65 |..effect| of scre|
|000010a0| 65 6e 20 6c 75 6d 69 6e | 61 6e 63 65 20 64 72 69 |en lumin|ance dri|
|000010b0| 66 74 2e 0d 39 2f 38 2f | 38 39 09 4c 61 6e 20 26 |ft..9/8/|89.Lan &|
|000010c0| 20 44 65 6e 69 73 20 67 | 65 6e 65 72 61 6c 6c 79 | Denis g|enerally|
|000010d0| 20 74 69 64 69 65 64 20 | 69 74 20 75 70 2e 0d 39 | tidied |it up..9|
|000010e0| 2f 38 2f 38 39 09 64 65 | 6e 69 73 3a 20 72 65 70 |/8/89.de|nis: rep|
|000010f0| 6c 61 63 65 64 20 70 6f | 6c 79 6e 6f 6d 69 61 6c |laced po|lynomial|
|00001100| 20 66 69 74 20 62 79 20 | 70 6f 77 65 72 6c 61 77 | fit by |powerlaw|
|00001110| 20 66 69 74 0d 39 2f 31 | 30 2f 38 39 20 64 65 6e | fit.9/1|0/89 den|
|00001120| 69 73 3a 20 67 6f 74 20 | 67 61 69 6e 20 6d 65 61 |is: got |gain mea|
|00001130| 73 75 72 65 6d 65 6e 74 | 20 74 6f 20 77 6f 72 6b |surement| to work|
|00001140| 20 77 69 74 68 20 73 75 | 66 66 69 63 69 65 6e 74 | with su|fficient|
|00001150| 20 61 63 63 75 72 61 63 | 79 2e 20 0d 09 09 54 68 | accurac|y. ...Th|
|00001160| 69 73 20 69 6e 76 6f 6c | 76 65 64 20 6d 61 6e 79 |is invol|ved many|
|00001170| 20 73 6d 61 6c 6c 20 63 | 68 61 6e 67 65 73 2e 20 | small c|hanges. |
|00001180| 49 20 6e 6f 77 0d 09 09 | 77 61 69 74 20 66 6f 72 |I now...|wait for|
|00001190| 20 61 20 73 65 63 6f 6e | 64 20 61 66 74 65 72 20 | a secon|d after |
|000011a0| 61 6e 79 20 6c 61 72 67 | 65 20 6c 75 6d 69 6e 61 |any larg|e lumina|
|000011b0| 6e 63 65 20 63 68 61 6e | 67 65 20 74 6f 20 61 6c |nce chan|ge to al|
|000011c0| 6c 6f 77 20 74 68 65 0d | 09 09 70 68 6f 74 6f 6d |low the.|..photom|
|000011d0| 65 74 65 72 20 74 6f 20 | 73 65 74 74 6c 65 2e 20 |eter to |settle. |
|000011e0| 49 20 61 6c 73 6f 20 6d | 65 61 73 75 72 65 20 74 |I also m|easure t|
|000011f0| 68 65 20 63 68 61 6e 6e | 65 6c 20 67 61 69 6e 73 |he chann|el gains|
|00001200| 20 61 74 20 6d 61 6e 79 | 20 64 69 66 66 65 72 65 | at many| differe|
|00001210| 6e 74 0d 09 09 73 65 74 | 74 69 6e 67 73 20 6f 66 |nt...set|tings of|
|00001220| 20 74 68 65 20 6f 74 68 | 65 72 20 44 41 43 73 2c | the oth|er DACs,|
|00001230| 20 69 6e 20 6f 72 64 65 | 72 20 74 6f 20 61 76 65 | in orde|r to ave|
|00001240| 72 61 67 65 20 6f 75 74 | 20 74 68 65 20 65 66 66 |rage out| the eff|
|00001250| 65 63 74 20 6f 66 20 44 | 41 43 0d 09 09 69 6e 61 |ect of D|AC...ina|
|00001260| 63 63 75 72 61 63 69 65 | 73 2e 0d 31 30 2f 33 30 |ccuracie|s..10/30|
|00001270| 2f 38 39 20 4c 61 6e 20 | 26 20 44 65 6e 69 73 3a |/89 Lan |& Denis:|
|00001280| 20 69 6e 74 72 6f 64 75 | 63 65 64 20 74 68 65 20 | introdu|ced the |
|00001290| 6f 70 74 69 6f 6e 20 6f | 66 20 6d 61 6e 75 61 6c |option o|f manual|
|000012a0| 20 72 65 61 64 69 6e 67 | 73 2c 20 61 6e 64 20 6d | reading|s, and m|
|000012b0| 61 64 65 20 63 6f 6e 73 | 6f 6c 65 20 73 6d 61 6c |ade cons|ole smal|
|000012c0| 6c 65 72 2e 0d 31 31 2f | 31 37 2f 38 39 20 4c 61 |ler..11/|17/89 La|
|000012d0| 6e 20 26 20 44 65 6e 69 | 73 3a 20 63 6c 65 61 6e |n & Deni|s: clean|
|000012e0| 65 64 20 75 70 20 66 6f | 72 20 67 65 6e 65 72 61 |ed up fo|r genera|
|000012f0| 6c 20 72 65 6c 65 61 73 | 65 2e 0d 31 31 2f 33 30 |l releas|e..11/30|
|00001300| 2f 38 39 20 44 65 6e 69 | 73 3a 20 61 64 64 65 64 |/89 Deni|s: added|
|00001310| 20 63 6f 6d 6d 65 6e 74 | 20 74 6f 20 4c 75 6d 69 | comment| to Lumi|
|00001320| 6e 61 6e 63 65 52 65 63 | 6f 72 64 2e 68 20 65 78 |nanceRec|ord.h ex|
|00001330| 70 6c 61 69 6e 69 6e 67 | 20 70 6f 77 65 72 5b 5d |plaining| power[]|
|00001340| 20 70 61 72 61 6d 65 74 | 65 72 73 2e 0d 33 2f 32 | paramet|ers..3/2|
|00001350| 39 2f 39 30 09 64 67 70 | 09 32 2e 31 35 20 55 70 |9/90.dgp|.2.15 Up|
|00001360| 64 61 74 65 64 20 74 6f | 20 75 73 65 20 6e 65 77 |dated to| use new|
|00001370| 20 47 65 74 56 6f 6c 74 | 61 67 65 20 74 68 61 74 | GetVolt|age that|
|00001380| 20 6c 6f 6f 6b 73 20 66 | 6f 72 20 46 6f 72 65 52 | looks f|or ForeR|
|00001390| 75 6e 6e 65 72 20 63 61 | 72 64 2c 0d 09 09 09 61 |unner ca|rd,....a|
|000013a0| 6e 64 20 6e 65 77 20 47 | 44 4f 70 65 6e 57 69 6e |nd new G|DOpenWin|
|000013b0| 64 6f 77 28 29 20 74 68 | 61 74 20 75 73 65 73 20 |dow() th|at uses |
|000013c0| 43 57 69 6e 64 6f 77 50 | 74 72 20 69 6e 73 74 65 |CWindowP|tr inste|
|000013d0| 61 64 20 6f 66 20 57 69 | 6e 64 6f 77 50 74 72 2e |ad of Wi|ndowPtr.|
|000013e0| 20 49 6e 74 72 6f 64 75 | 63 65 64 0d 09 09 09 63 | Introdu|ced....c|
|000013f0| 6f 6e 64 69 74 69 6f 6e | 61 6c 73 20 73 6f 20 69 |ondition|als so i|
|00001400| 74 20 63 6f 6d 70 69 6c | 65 73 20 77 69 74 68 6f |t compil|es witho|
|00001410| 75 74 20 65 72 72 6f 72 | 73 20 75 6e 64 65 72 20 |ut error|s under |
|00001420| 4d 50 57 20 43 20 33 2e | 31 2e 20 0d 34 2f 32 31 |MPW C 3.|1. .4/21|
|00001430| 2f 39 30 09 64 67 70 09 | 32 2e 32 30 2e 20 46 69 |/90.dgp.|2.20. Fi|
|00001440| 78 65 64 20 74 68 65 20 | 62 75 67 20 69 6e 20 74 |xed the |bug in t|
|00001450| 68 65 20 66 69 78 65 64 | 2d 70 6f 77 65 72 20 70 |he fixed|-power p|
|00001460| 6f 77 65 72 20 6c 61 77 | 20 66 69 74 2e 20 55 70 |ower law| fit. Up|
|00001470| 64 61 74 65 64 20 77 68 | 6f 6c 65 20 66 69 6c 65 |dated wh|ole file|
|00001480| 0d 09 09 09 74 6f 20 62 | 65 20 63 6f 6d 70 61 74 |....to b|e compat|
|00001490| 69 62 6c 65 20 77 69 74 | 68 20 6c 61 74 65 73 74 |ible wit|h latest|
|000014a0| 20 76 65 72 73 69 6f 6e | 73 20 6f 66 20 61 6c 6c | version|s of all|
|000014b0| 20 73 75 62 72 6f 75 74 | 69 6e 65 73 2e 20 43 6f | subrout|ines. Co|
|000014c0| 72 72 65 63 74 65 64 20 | 70 72 69 6e 74 6f 75 74 |rrected |printout|
|000014d0| 0d 09 09 09 6f 66 20 6e | 42 61 63 6b 67 72 6f 75 |....of n|Backgrou|
|000014e0| 6e 64 2e 0d 37 2f 32 38 | 2f 39 30 09 64 67 70 09 |nd..7/28|/90.dgp.|
|000014f0| 32 2e 33 2e 20 41 64 64 | 65 64 20 63 6f 64 65 20 |2.3. Add|ed code |
|00001500| 28 69 6e 20 47 65 74 41 | 4c 75 6d 69 6e 61 6e 63 |(in GetA|Luminanc|
|00001510| 65 2e 63 29 20 74 6f 20 | 66 69 6e 64 20 74 68 65 |e.c) to |find the|
|00001520| 20 65 71 75 69 76 61 6c | 65 6e 74 20 6e 75 6d 62 | equival|ent numb|
|00001530| 65 72 20 74 6f 0d 09 09 | 09 70 72 6f 64 75 63 65 |er to...|.produce|
|00001540| 20 61 6e 79 20 64 65 73 | 69 72 65 64 20 62 61 63 | any des|ired bac|
|00001550| 6b 67 72 6f 75 6e 64 20 | 6c 75 6d 69 6e 61 6e 63 |kground |luminanc|
|00001560| 65 2e 0d 09 09 09 41 6c | 6c 20 6c 75 6d 69 6e 61 |e.....Al|l lumina|
|00001570| 6e 63 65 20 6d 65 61 73 | 75 72 65 6d 65 6e 74 20 |nce meas|urement |
|00001580| 69 73 20 6e 6f 77 20 64 | 6f 6e 65 20 76 69 61 20 |is now d|one via |
|00001590| 74 68 65 20 6e 65 77 20 | 73 75 62 72 6f 75 74 69 |the new |subrouti|
|000015a0| 6e 65 20 47 65 74 41 4c | 75 6d 69 6e 61 6e 63 65 |ne GetAL|uminance|
|000015b0| 2e 20 0d 09 09 09 41 75 | 74 6f 6d 61 74 69 63 20 |. ....Au|tomatic |
|000015c0| 61 6e 64 20 6d 61 6e 75 | 61 6c 20 6d 65 61 73 75 |and manu|al measu|
|000015d0| 72 65 6d 65 6e 74 73 20 | 6e 6f 77 20 75 73 65 20 |rements |now use |
|000015e0| 74 68 65 20 65 78 61 63 | 74 6c 79 20 74 68 65 20 |the exac|tly the |
|000015f0| 73 61 6d 65 20 63 6f 64 | 65 2e 0d 09 09 09 43 61 |same cod|e.....Ca|
|00001600| 6c 69 62 72 61 74 69 6f | 6e 20 6f 66 20 28 6c 69 |libratio|n of (li|
|00001610| 6e 65 61 72 29 20 52 47 | 42 20 67 61 69 6e 73 20 |near) RG|B gains |
|00001620| 69 73 20 6e 6f 77 20 6f | 70 74 69 6f 6e 61 6c 2e |is now o|ptional.|
|00001630| 0d 39 2f 31 38 2f 39 30 | 09 64 67 70 09 32 2e 34 |.9/18/90|.dgp.2.4|
|00001640| 2e 20 43 68 61 6e 67 65 | 64 20 61 6c 6c 20 69 6e |. Change|d all in|
|00001650| 73 74 61 6e 63 65 73 20 | 6f 66 20 22 76 22 20 74 |stances |of "v" t|
|00001660| 6f 20 22 56 22 2e 20 50 | 65 6c 6c 69 0d 09 09 09 |o "V". P|elli....|
|00001670| 26 20 5a 68 61 6e 67 20 | 28 31 39 39 31 29 20 72 |& Zhang |(1991) r|
|00001680| 65 66 65 72 20 74 6f 20 | 61 20 6e 6f 6d 69 6e 61 |efer to |a nomina|
|00001690| 6c 20 76 6f 6c 74 61 67 | 65 20 76 3b 20 74 68 69 |l voltag|e v; thi|
|000016a0| 73 20 66 69 6c 65 0d 09 | 09 09 6e 6f 77 20 72 65 |s file..|..now re|
|000016b0| 66 65 72 73 20 74 6f 20 | 74 68 65 20 22 65 71 75 |fers to |the "equ|
|000016c0| 69 76 61 6c 65 6e 74 20 | 6e 75 6d 62 65 72 22 20 |ivalent |number" |
|000016d0| 56 3b 20 74 68 65 79 20 | 61 72 65 20 72 65 6c 61 |V; they |are rela|
|000016e0| 74 65 64 20 62 79 20 56 | 3d 56 4d 61 78 2a 76 2e |ted by V|=VMax*v.|
|000016f0| 0d 39 2f 32 32 2f 39 30 | 09 64 67 70 09 32 2e 35 |.9/22/90|.dgp.2.5|
|00001700| 2e 20 46 69 78 65 64 20 | 63 6f 73 6d 65 74 69 63 |. Fixed |cosmetic|
|00001710| 20 65 72 72 6f 72 73 20 | 74 68 61 74 20 70 72 65 | errors |that pre|
|00001720| 76 65 6e 74 65 64 20 75 | 73 65 20 6f 66 20 74 68 |vented u|se of th|
|00001730| 69 73 20 70 72 6f 67 72 | 61 6d 20 6f 6e 20 74 68 |is progr|am on th|
|00001740| 65 20 6d 61 69 6e 0d 09 | 09 09 73 63 72 65 65 6e |e main..|..screen|
|00001750| 2e 20 54 68 65 20 74 72 | 69 63 6b 20 69 73 20 61 |. The tr|ick is a|
|00001760| 70 70 72 6f 70 72 69 61 | 74 65 20 75 73 65 20 6f |ppropria|te use o|
|00001770| 66 20 42 72 69 6e 67 54 | 6f 46 72 6f 6e 74 28 29 |f BringT|oFront()|
|00001780| 20 61 6e 64 20 53 65 6e | 64 42 65 68 69 6e 64 28 | and Sen|dBehind(|
|00001790| 29 0d 09 09 09 72 65 66 | 65 72 72 69 6e 67 20 6f |)....ref|erring o|
|000017a0| 6e 6c 79 20 74 6f 20 6d | 79 20 6f 77 6e 20 77 69 |nly to m|y own wi|
|000017b0| 6e 64 6f 77 2e 20 54 72 | 79 69 6e 67 20 74 6f 20 |ndow. Tr|ying to |
|000017c0| 64 6f 20 42 72 69 6e 67 | 54 6f 46 72 6f 6e 74 28 |do Bring|ToFront(|
|000017d0| 29 20 6f 6e 20 74 68 65 | 20 63 6f 6e 73 6f 6c 65 |) on the| console|
|000017e0| 0d 09 09 09 6f 66 74 65 | 6e 20 63 61 75 73 65 64 |....ofte|n caused|
|000017f0| 20 61 20 62 75 73 20 65 | 72 72 6f 72 2c 20 66 6f | a bus e|rror, fo|
|00001800| 72 20 6e 6f 20 6f 62 76 | 69 6f 75 73 20 72 65 61 |r no obv|ious rea|
|00001810| 73 6f 6e 2e 20 49 27 6c | 6c 20 68 61 76 65 20 74 |son. I'l|l have t|
|00001820| 6f 20 61 73 6b 20 4d 69 | 6b 65 0d 09 09 09 4b 61 |o ask Mi|ke....Ka|
|00001830| 68 6c 2e 0d 39 2f 32 34 | 2f 39 30 09 64 67 70 09 |hl..9/24|/90.dgp.|
|00001840| 32 2e 36 2e 20 41 64 64 | 65 64 20 73 63 72 65 65 |2.6. Add|ed scree|
|00001850| 6e 20 74 6f 20 74 68 65 | 20 4c 75 6d 69 6e 61 6e |n to the| Luminan|
|00001860| 63 65 52 65 63 6f 72 64 | 2e 68 20 66 69 6c 65 20 |ceRecord|.h file |
|00001870| 61 6e 64 20 61 70 70 65 | 6e 64 65 64 20 69 74 20 |and appe|nded it |
|00001880| 74 6f 0d 09 09 09 74 68 | 65 20 4c 75 6d 69 6e 61 |to....th|e Lumina|
|00001890| 6e 63 65 52 65 63 6f 72 | 64 2e 68 20 61 6e 64 20 |nceRecor|d.h and |
|000018a0| 2e 64 61 74 61 20 66 69 | 6c 65 6e 61 6d 65 73 2e |.data fi|lenames.|
|000018b0| 20 54 68 69 73 20 6d 61 | 6b 65 73 20 69 74 20 65 | This ma|kes it e|
|000018c0| 61 73 79 20 74 6f 20 63 | 61 6c 69 62 72 61 74 65 |asy to c|alibrate|
|000018d0| 0d 09 09 09 61 6c 6c 20 | 79 6f 75 72 20 6d 6f 6e |....all |your mon|
|000018e0| 69 74 6f 72 73 20 61 6e | 64 20 6b 65 65 70 20 74 |itors an|d keep t|
|000018f0| 68 65 20 72 65 63 6f 72 | 64 73 20 73 74 72 61 69 |he recor|ds strai|
|00001900| 67 68 74 2e 0d 09 09 09 | 41 64 64 65 64 20 4c 52 |ght.....|Added LR|
|00001910| 2e 64 61 74 65 20 73 74 | 72 69 6e 67 2e 0d 09 09 |.date st|ring....|
|00001920| 09 4e 65 77 20 64 65 66 | 61 75 6c 74 20 69 73 20 |.New def|ault is |
|00001930| 74 6f 20 72 65 74 61 69 | 6e 20 6f 6c 64 20 67 61 |to retai|n old ga|
|00001940| 69 6e 41 63 63 75 72 61 | 63 79 20 77 68 65 6e 20 |inAccura|cy when |
|00001950| 72 67 62 20 67 61 69 6e | 73 20 61 72 65 20 6e 6f |rgb gain|s are no|
|00001960| 74 20 72 65 6d 65 61 73 | 75 72 65 64 2e 0d 31 30 |t remeas|ured..10|
|00001970| 2f 31 30 2f 39 30 20 64 | 67 70 20 41 64 64 65 64 |/10/90 d|gp Added|
|00001980| 20 53 65 74 44 65 70 74 | 68 28 29 2e 20 46 69 78 | SetDept|h(). Fix|
|00001990| 65 64 20 62 75 67 20 74 | 68 61 74 20 72 65 64 75 |ed bug t|hat redu|
|000019a0| 63 69 6e 67 20 74 68 65 | 20 6e 75 6d 62 65 72 20 |cing the| number |
|000019b0| 6f 66 20 66 72 61 6d 65 | 73 20 73 61 6d 70 6c 65 |of frame|s sample|
|000019c0| 64 0d 09 09 09 70 65 72 | 20 61 2f 64 20 6d 65 61 |d....per| a/d mea|
|000019d0| 73 75 72 65 6d 65 6e 74 | 20 62 79 20 74 68 65 20 |surement| by the |
|000019e0| 6e 75 6d 62 65 72 20 6f | 66 20 63 79 63 6c 65 73 |number o|f cycles|
|000019f0| 2e 20 54 68 65 20 6e 75 | 6d 62 65 72 20 6f 66 20 |. The nu|mber of |
|00001a00| 66 72 61 6d 65 73 20 70 | 65 72 0d 09 09 09 6d 65 |frames p|er....me|
|00001a10| 61 73 75 72 65 6d 65 6e | 74 20 69 73 20 6e 6f 77 |asuremen|t is now|
|00001a20| 20 66 69 78 65 64 2e 0d | 31 30 2f 31 32 2f 39 30 | fixed..|10/12/90|
|00001a30| 20 64 67 70 20 41 64 64 | 65 64 20 4c 52 2e 64 70 | dgp Add|ed LR.dp|
|00001a40| 69 20 61 6e 64 20 4c 52 | 2e 48 7a 20 74 6f 20 74 |i and LR|.Hz to t|
|00001a50| 68 65 20 4c 75 6d 69 6e | 61 6e 63 65 52 65 63 6f |he Lumin|anceReco|
|00001a60| 72 64 3f 2e 68 20 66 69 | 6c 65 2e 0d 31 30 2f 31 |rd?.h fi|le..10/1|
|00001a70| 37 2f 39 30 20 64 67 70 | 20 52 65 6d 6f 76 65 64 |7/90 dgp| Removed|
|00001a80| 20 75 6e 75 73 65 64 20 | 76 61 72 69 61 62 6c 65 | unused |variable|
|00001a90| 73 2e 20 41 64 64 65 64 | 20 72 65 66 65 72 65 6e |s. Added| referen|
|00001aa0| 63 65 20 74 6f 20 70 61 | 70 65 72 20 74 6f 20 4c |ce to pa|per to L|
|00001ab0| 75 6d 69 6e 61 6e 63 65 | 52 65 63 6f 72 64 3f 2e |uminance|Record?.|
|00001ac0| 68 2e 0d 31 32 2f 31 32 | 2f 39 30 20 64 67 70 20 |h..12/12|/90 dgp |
|00001ad0| 4d 65 61 73 75 72 65 20 | 61 6e 64 20 73 75 62 74 |Measure |and subt|
|00001ae0| 72 61 63 74 20 6f 66 66 | 20 74 68 65 20 64 61 72 |ract off| the dar|
|00001af0| 6b 20 76 6f 6c 74 61 67 | 65 2e 0d 09 09 09 46 69 |k voltag|e.....Fi|
|00001b00| 78 65 64 20 64 75 6d 62 | 20 65 72 72 6f 72 20 6f |xed dumb| error o|
|00001b10| 66 20 61 73 73 75 6d 69 | 6e 67 20 77 72 6f 6e 67 |f assumi|ng wrong|
|00001b20| 20 74 79 70 65 20 77 68 | 65 6e 20 70 72 69 6e 74 | type wh|en print|
|00001b30| 69 6e 67 20 4c 50 2d 3e | 56 4d 61 78 0d 09 09 09 |ing LP->|VMax....|
|00001b40| 26 20 4c 50 2d 3e 63 6f | 65 66 66 69 63 69 65 6e |& LP->co|efficien|
|00001b50| 74 73 2c 20 77 68 69 63 | 68 20 77 61 73 20 72 65 |ts, whic|h was re|
|00001b60| 73 75 6c 74 69 6e 67 20 | 69 6e 20 7a 65 72 6f 65 |sulting |in zeroe|
|00001b70| 73 20 69 6e 20 74 68 65 | 20 4c 75 6d 69 6e 61 6e |s in the| Luminan|
|00001b80| 63 65 52 65 63 6f 72 64 | 2e 0d 34 2f 31 35 2f 39 |ceRecord|..4/15/9|
|00001b90| 31 09 64 67 70 20 43 68 | 65 63 6b 20 66 6f 72 20 |1.dgp Ch|eck for |
|00001ba0| 4e 65 77 50 61 6c 65 74 | 74 65 4d 61 6e 61 67 65 |NewPalet|teManage|
|00001bb0| 72 28 29 2e 0d 38 2f 32 | 34 2f 39 31 09 64 67 70 |r()..8/2|4/91.dgp|
|00001bc0| 09 6d 61 64 65 20 63 6f | 6d 70 61 74 69 62 6c 65 |.made co|mpatible|
|00001bd0| 20 77 69 74 68 20 54 48 | 49 4e 4b 20 43 20 35 2e | with TH|INK C 5.|
|00001be0| 20 54 68 69 73 20 72 65 | 71 75 69 72 65 64 20 69 | This re|quired i|
|00001bf0| 6e 74 72 6f 64 75 63 69 | 6e 67 20 73 65 76 65 72 |ntroduci|ng sever|
|00001c00| 61 6c 0d 09 09 09 63 61 | 73 74 73 3a 20 28 75 6e |al....ca|sts: (un|
|00001c10| 73 69 67 6e 65 64 20 6c | 6f 6e 67 20 2a 29 20 61 |signed l|ong *) a|
|00001c20| 6e 64 20 28 75 6e 73 69 | 67 6e 65 64 20 63 68 61 |nd (unsi|gned cha|
|00001c30| 72 20 2a 29 2e 20 48 6f | 70 65 66 75 6c 6c 79 2c |r *). Ho|pefully,|
|00001c40| 20 74 68 69 73 20 77 6f | 6e 27 74 0d 09 09 09 63 | this wo|n't....c|
|00001c50| 6f 6d 70 72 6f 6d 69 73 | 65 20 63 6f 6d 70 61 74 |ompromis|e compat|
|00001c60| 69 62 69 6c 69 74 79 20 | 77 69 74 68 20 6f 6c 64 |ibility |with old|
|00001c70| 20 54 48 49 4e 4b 20 43 | 20 34 2e 0d 36 2f 32 33 | THINK C| 4..6/23|
|00001c80| 2f 39 32 09 64 67 70 09 | 61 64 64 65 64 20 71 75 |/92.dgp.|added qu|
|00001c90| 69 63 6b 20 63 68 65 63 | 6b 20 6f 66 20 70 68 6f |ick chec|k of pho|
|00001ca0| 74 6f 6d 65 74 65 72 20 | 67 61 69 6e 2e 0d 38 2f |tometer |gain..8/|
|00001cb0| 32 37 2f 39 32 09 64 67 | 70 09 72 65 70 6c 61 63 |27/92.dg|p.replac|
|00001cc0| 65 20 53 79 73 45 6e 76 | 69 72 6f 6e 73 28 29 20 |e SysEnv|irons() |
|00001cd0| 62 79 20 47 65 73 74 61 | 6c 74 28 29 0d 31 30 2f |by Gesta|lt().10/|
|00001ce0| 32 33 2f 39 32 20 64 67 | 70 20 72 65 61 64 20 6c |23/92 dg|p read l|
|00001cf0| 61 74 65 73 74 20 4c 75 | 6d 69 6e 61 6e 63 65 52 |atest Lu|minanceR|
|00001d00| 65 63 6f 72 64 20 66 6f | 72 20 64 65 66 61 75 6c |ecord fo|r defaul|
|00001d10| 74 20 76 61 6c 75 65 73 | 2e 20 4d 65 6e 74 69 6f |t values|. Mentio|
|00001d20| 6e 65 64 20 52 65 61 64 | 4c 75 6d 69 6e 61 6e 63 |ned Read|Luminanc|
|00001d30| 65 52 65 63 6f 72 64 28 | 29 0d 09 09 09 69 6e 20 |eRecord(|)....in |
|00001d40| 74 68 65 20 4c 75 6d 69 | 6e 61 6e 63 65 52 65 63 |the Lumi|nanceRec|
|00001d50| 6f 72 64 20 68 65 61 64 | 65 72 20 66 69 6c 65 2e |ord head|er file.|
|00001d60| 0d 31 30 2f 32 34 2f 39 | 32 20 64 67 70 20 75 73 |.10/24/9|2 dgp us|
|00001d70| 65 20 47 44 46 72 61 6d | 65 52 61 74 65 28 29 20 |e GDFram|eRate() |
|00001d80| 74 6f 20 6d 65 61 73 75 | 72 65 20 74 68 65 20 66 |to measu|re the f|
|00001d90| 72 61 6d 65 20 72 61 74 | 65 2e 0d 31 31 2f 31 33 |rame rat|e..11/13|
|00001da0| 2f 39 32 20 64 67 70 20 | 61 64 76 65 72 74 69 73 |/92 dgp |advertis|
|00001db0| 65 20 52 65 61 64 4c 75 | 6d 69 6e 61 6e 63 65 52 |e ReadLu|minanceR|
|00001dc0| 65 63 6f 72 64 2e 63 0d | 31 32 2f 31 37 2f 39 32 |ecord.c.|12/17/92|
|00001dd0| 20 64 67 70 20 45 6e 68 | 61 6e 63 65 64 20 74 6f | dgp Enh|anced to|
|00001de0| 20 73 75 70 70 6f 72 74 | 20 61 72 62 69 74 72 61 | support| arbitra|
|00001df0| 72 79 20 64 61 63 53 69 | 7a 65 2e 20 47 65 74 20 |ry dacSi|ze. Get |
|00001e00| 64 61 63 53 69 7a 65 20 | 62 79 20 63 61 6c 6c 69 |dacSize |by calli|
|00001e10| 6e 67 20 47 44 47 65 74 | 47 61 6d 6d 61 28 29 2e |ng GDGet|Gamma().|
|00001e20| 20 0d 09 09 09 4d 6f 73 | 74 6c 79 20 49 20 6a 75 | ....Mos|tly I ju|
|00001e30| 73 74 20 72 65 70 6c 61 | 63 65 64 20 32 35 35 20 |st repla|ced 255 |
|00001e40| 62 79 20 4c 50 2d 3e 56 | 4d 61 78 2e 20 44 69 64 |by LP->V|Max. Did|
|00001e50| 6e 27 74 20 74 65 73 74 | 20 69 74 20 61 66 74 65 |n't test| it afte|
|00001e60| 72 20 63 68 61 6e 67 65 | 73 2e 0d 31 32 2f 32 31 |r change|s..12/21|
|00001e70| 2f 39 32 20 64 67 70 20 | 4e 6f 20 6c 6f 6e 67 65 |/92 dgp |No longe|
|00001e80| 72 20 6c 6f 61 64 20 75 | 6e 75 73 65 64 20 64 61 |r load u|nused da|
|00001e90| 63 20 62 69 74 73 2e 0d | 32 2f 32 33 2f 39 33 09 |c bits..|2/23/93.|
|00001ea0| 64 67 70 09 55 73 65 20 | 6e 65 77 20 47 44 4f 70 |dgp.Use |new GDOp|
|00001eb0| 65 6e 57 69 6e 64 6f 77 | 31 20 61 6e 64 20 47 44 |enWindow|1 and GD|
|00001ec0| 44 69 73 70 6f 73 65 57 | 69 6e 64 6f 77 31 2e 0d |DisposeW|indow1..|
|00001ed0| 34 2f 33 2f 39 33 09 64 | 67 70 09 46 69 78 20 62 |4/3/93.d|gp.Fix b|
|00001ee0| 75 67 20 74 68 61 74 20 | 63 61 75 73 65 73 20 47 |ug that |causes G|
|00001ef0| 65 74 41 4c 75 6d 69 6e | 61 6e 63 65 20 74 6f 20 |etALumin|ance to |
|00001f00| 66 61 69 6c 20 28 69 2e | 65 2e 20 61 6c 77 61 79 |fail (i.|e. alway|
|00001f10| 73 20 73 65 74 20 65 6e | 74 72 79 20 74 6f 20 62 |s set en|try to b|
|00001f20| 6c 61 63 6b 29 0d 09 09 | 09 69 66 20 74 68 65 20 |lack)...|.if the |
|00001f30| 4c 75 6d 69 6e 61 6e 63 | 65 52 65 63 6f 72 64 20 |Luminanc|eRecord |
|00001f40| 68 61 73 6e 27 74 20 62 | 65 65 6e 20 69 6e 69 74 |hasn't b|een init|
|00001f50| 69 61 6c 69 7a 65 64 2e | 0d 34 2f 31 38 2f 39 33 |ialized.|.4/18/93|
|00001f60| 09 64 67 70 09 52 65 70 | 6c 61 63 65 64 20 63 74 |.dgp.Rep|laced ct|
|00001f70| 53 69 7a 65 20 62 79 20 | 63 6c 75 74 53 69 7a 65 |Size by |clutSize|
|00001f80| 2e 20 4e 6f 77 20 63 61 | 6c 6c 20 47 44 43 6c 75 |. Now ca|ll GDClu|
|00001f90| 74 53 69 7a 65 2e 20 46 | 69 78 65 64 20 63 61 6c |tSize. F|ixed cal|
|00001fa0| 6c 20 74 6f 20 53 65 74 | 44 65 70 74 68 2e 0d 35 |l to Set|Depth..5|
|00001fb0| 2f 34 2f 39 33 09 64 67 | 70 09 4c 65 61 76 65 20 |/4/93.dg|p.Leave |
|00001fc0| 67 72 61 79 2f 63 6f 6c | 6f 72 20 6d 6f 64 65 20 |gray/col|or mode |
|00001fd0| 61 6c 6f 6e 65 2c 20 62 | 75 74 20 77 61 72 6e 20 |alone, b|ut warn |
|00001fe0| 69 66 20 69 6e 20 67 72 | 61 79 20 6d 6f 64 65 2e |if in gr|ay mode.|
|00001ff0| 0d 35 2f 31 32 2f 39 33 | 09 64 67 70 20 57 68 65 |.5/12/93|.dgp Whe|
|00002000| 6e 20 69 6e 20 67 72 61 | 79 20 6d 6f 64 65 20 64 |n in gra|y mode d|
|00002010| 6f 6e 27 74 20 62 6f 74 | 68 65 72 20 74 6f 20 6f |on't bot|her to o|
|00002020| 66 66 65 72 20 74 6f 20 | 63 61 6c 69 62 72 61 74 |ffer to |calibrat|
|00002030| 65 20 72 67 62 20 67 61 | 69 6e 73 2e 0d 36 2f 34 |e rgb ga|ins..6/4|
|00002040| 2f 39 33 09 64 67 70 20 | 43 6f 6e 64 69 74 69 6f |/93.dgp |Conditio|
|00002050| 6e 61 6c 6c 79 20 63 68 | 61 6e 67 65 64 20 74 68 |nally ch|anged th|
|00002060| 65 20 64 61 74 61 2d 73 | 61 76 69 6e 67 20 73 75 |e data-s|aving su|
|00002070| 62 72 6f 75 74 69 6e 65 | 20 74 6f 20 75 73 65 20 |broutine| to use |
|00002080| 74 68 65 0d 09 09 09 6e | 65 77 20 57 72 69 74 65 |the....n|ew Write|
|00002090| 4c 75 6d 69 6e 61 6e 63 | 65 52 65 63 6f 72 64 20 |Luminanc|eRecord |
|000020a0| 73 75 62 72 6f 75 74 69 | 6e 65 2e 20 54 68 69 73 |subrouti|ne. This|
|000020b0| 20 68 61 73 6e 27 74 20 | 62 65 65 6e 20 74 65 73 | hasn't |been tes|
|000020c0| 74 65 64 20 79 65 74 2c | 20 61 6e 64 0d 09 09 09 |ted yet,| and....|
|000020d0| 77 65 20 63 61 6e 20 72 | 65 76 65 72 74 20 62 61 |we can r|evert ba|
|000020e0| 63 6b 20 74 6f 20 74 68 | 65 20 6f 6c 64 20 63 6f |ck to th|e old co|
|000020f0| 64 65 20 62 79 20 63 68 | 61 6e 67 69 6e 67 20 74 |de by ch|anging t|
|00002100| 68 65 20 23 69 66 20 31 | 20 74 6f 20 23 69 66 20 |he #if 1| to #if |
|00002110| 30 2e 0d 09 09 09 54 68 | 65 20 76 69 72 74 75 65 |0.....Th|e virtue|
|00002120| 20 6f 66 20 74 68 65 20 | 6e 65 77 20 63 6f 64 65 | of the |new code|
|00002130| 20 69 73 20 74 68 61 74 | 20 69 74 20 76 65 72 69 | is that| it veri|
|00002140| 66 69 65 73 20 77 68 61 | 74 20 77 61 73 20 77 72 |fies wha|t was wr|
|00002150| 69 74 74 65 6e 2e 0d 35 | 2f 32 38 2f 39 34 20 64 |itten..5|/28/94 d|
|00002160| 67 70 20 43 68 61 6e 67 | 65 64 20 74 68 65 20 73 |gp Chang|ed the s|
|00002170| 65 63 6f 6e 64 20 61 72 | 67 75 6d 65 6e 74 20 6f |econd ar|gument o|
|00002180| 66 20 46 69 6c 6c 52 65 | 63 74 28 29 20 74 6f 20 |f FillRe|ct() to |
|00002190| 62 65 20 22 26 71 64 2e | 62 6c 61 63 6b 22 20 69 |be "&qd.|black" i|
|000021a0| 6e 73 74 65 61 64 20 6f | 66 20 0d 22 71 64 2e 62 |nstead o|f ."qd.b|
|000021b0| 6c 61 63 6b 22 20 66 6f | 72 20 63 6f 6d 70 61 74 |lack" fo|r compat|
|000021c0| 69 62 69 6c 69 74 79 20 | 77 69 74 68 20 41 70 70 |ibility |with App|
|000021d0| 6c 65 27 73 20 72 65 64 | 65 66 69 6e 69 74 69 6f |le's red|efinitio|
|000021e0| 6e 20 6f 66 20 50 61 74 | 74 65 72 6e 20 61 73 20 |n of Pat|tern as |
|000021f0| 61 20 73 74 72 75 63 74 | 20 0d 69 6e 73 74 65 61 |a struct| .instea|
|00002200| 64 20 6f 66 20 61 6e 20 | 61 72 72 61 79 2e 20 54 |d of an |array. T|
|00002210| 68 69 73 20 6d 61 6b 65 | 73 20 74 68 65 20 63 61 |his make|s the ca|
|00002220| 6c 6c 20 63 6f 6d 70 61 | 74 69 62 6c 65 20 77 69 |ll compa|tible wi|
|00002230| 74 68 20 41 70 70 6c 65 | 27 73 20 55 6e 69 76 65 |th Apple|'s Unive|
|00002240| 72 73 61 6c 20 48 65 61 | 64 65 72 73 2e 0d 35 2f |rsal Hea|ders..5/|
|00002250| 33 31 2f 39 34 09 64 67 | 70 09 61 64 64 65 64 20 |31/94.dg|p.added |
|00002260| 28 43 6f 6e 73 74 50 61 | 74 74 65 72 6e 50 61 72 |(ConstPa|tternPar|
|00002270| 61 6d 29 20 63 61 73 74 | 20 74 6f 20 61 62 6f 76 |am) cast| to abov|
|00002280| 65 2c 20 74 6f 20 72 65 | 74 61 69 6e 20 63 6f 6d |e, to re|tain com|
|00002290| 70 61 74 69 62 69 6c 69 | 74 79 0d 77 69 74 68 20 |patibili|ty.with |
|000022a0| 74 68 65 20 6f 6c 64 20 | 64 65 66 69 6e 69 74 69 |the old |definiti|
|000022b0| 6f 6e 20 6f 66 20 50 61 | 74 74 65 72 6e 2e 0d 39 |on of Pa|ttern..9|
|000022c0| 2f 35 2f 39 34 20 64 67 | 70 20 72 65 6d 6f 76 65 |/5/94 dg|p remove|
|000022d0| 64 20 61 73 73 75 6d 70 | 74 69 6f 6e 20 69 6e 20 |d assump|tion in |
|000022e0| 70 72 69 6e 74 66 27 73 | 20 74 68 61 74 20 69 6e |printf's| that in|
|000022f0| 74 3d 3d 73 68 6f 72 74 | 2e 0d 31 31 2f 31 37 2f |t==short|..11/17/|
|00002300| 39 34 20 64 67 70 20 75 | 70 64 61 74 65 64 20 74 |94 dgp u|pdated t|
|00002310| 6f 20 75 73 65 20 43 68 | 6f 6f 73 65 53 63 72 65 |o use Ch|ooseScre|
|00002320| 65 6e 2e 20 41 64 64 65 | 64 20 63 6f 6e 64 69 74 |en. Adde|d condit|
|00002330| 69 6f 6e 61 6c 20 63 6f | 64 65 20 66 6f 72 20 43 |ional co|de for C|
|00002340| 6f 64 65 57 61 72 72 69 | 6f 72 2e 0d 37 2f 32 36 |odeWarri|or..7/26|
|00002350| 2f 39 35 20 64 67 70 20 | 4a 6f 73 68 20 53 6f 6c |/95 dgp |Josh Sol|
|00002360| 6f 6d 6f 6e 20 72 65 70 | 6f 72 74 65 64 20 74 68 |omon rep|orted th|
|00002370| 61 74 20 69 74 20 77 61 | 73 6e 27 74 20 77 6f 72 |at it wa|sn't wor|
|00002380| 6b 69 6e 67 2e 20 46 69 | 78 65 64 2c 20 6d 61 69 |king. Fi|xed, mai|
|00002390| 6e 6c 79 20 62 79 20 72 | 65 6d 6f 76 69 6e 67 20 |nly by r|emoving |
|000023a0| 74 68 65 20 63 6f 6e 64 | 69 74 69 6f 6e 61 6c 0d |the cond|itional.|
|000023b0| 09 09 09 43 6f 64 65 57 | 61 72 72 69 6f 72 20 63 |...CodeW|arrior c|
|000023c0| 6f 64 65 20 74 68 61 74 | 20 77 61 73 20 6e 65 65 |ode that| was nee|
|000023d0| 64 65 64 20 66 6f 72 20 | 74 68 61 74 20 76 65 72 |ded for |that ver|
|000023e0| 73 69 6f 6e 2c 20 62 75 | 74 20 77 68 69 63 68 20 |sion, bu|t which |
|000023f0| 69 73 20 73 75 70 65 72 | 66 6c 75 6f 75 73 2c 20 |is super|fluous, |
|00002400| 61 6e 64 20 66 61 69 6c | 73 2c 0d 09 09 09 75 6e |and fail|s,....un|
|00002410| 64 65 72 20 74 68 65 20 | 63 75 72 72 65 6e 74 20 |der the |current |
|00002420| 76 65 72 73 69 6f 6e 2e | 20 0d 09 09 09 41 64 64 |version.| ....Add|
|00002430| 65 64 20 63 6f 64 65 20 | 74 6f 20 72 65 73 74 6f |ed code |to resto|
|00002440| 72 65 20 73 63 72 65 65 | 6e 20 74 6f 20 69 74 73 |re scree|n to its|
|00002450| 20 6f 72 69 67 69 6e 61 | 6c 20 67 61 6d 6d 61 2c | origina|l gamma,|
|00002460| 20 64 65 70 74 68 2c 20 | 61 6e 64 20 6d 6f 64 65 | depth, |and mode|
|00002470| 2e 0d 33 2f 38 2f 39 36 | 20 64 67 70 20 64 65 66 |..3/8/96| dgp def|
|00002480| 61 75 6c 74 20 6f 66 20 | 6e 6f 20 72 65 70 65 61 |ault of |no repea|
|00002490| 74 20 77 68 65 6e 20 21 | 61 75 74 6f 6d 61 74 69 |t when !|automati|
|000024a0| 63 2e 20 47 44 4f 70 65 | 6e 57 69 6e 64 6f 77 31 |c. GDOpe|nWindow1|
|000024b0| 28 29 27 73 20 63 61 6c | 6c 20 74 6f 20 47 44 47 |()'s cal|l to GDG|
|000024c0| 72 61 79 43 6f 6c 6f 72 | 54 61 62 6c 65 28 29 20 |rayColor|Table() |
|000024d0| 63 61 75 73 65 73 20 74 | 68 65 20 0d 09 09 09 77 |causes t|he ....w|
|000024e0| 69 6e 64 6f 77 20 66 72 | 61 6d 65 20 74 6f 20 62 |indow fr|ame to b|
|000024f0| 65 63 6f 6d 65 20 6f 72 | 61 6e 67 65 2e 20 49 20 |ecome or|ange. I |
|00002500| 64 6f 6e 27 74 20 75 6e | 64 65 72 73 74 61 6e 64 |don't un|derstand|
|00002510| 20 77 68 79 2c 20 62 75 | 74 20 69 74 27 73 20 6f | why, bu|t it's o|
|00002520| 6e 6c 79 20 61 20 63 6f | 73 6d 65 74 69 63 20 62 |nly a co|smetic b|
|00002530| 75 67 20 66 6f 72 20 74 | 68 69 73 20 0d 09 09 09 |ug for t|his ....|
|00002540| 70 72 6f 67 72 61 6d 2c | 20 73 6f 20 69 27 6d 20 |program,| so i'm |
|00002550| 69 67 6e 6f 72 69 6e 67 | 20 69 74 20 66 6f 72 20 |ignoring| it for |
|00002560| 6e 6f 77 2e 0d 2a 2f 0d | 23 69 6e 63 6c 75 64 65 |now..*/.|#include|
|00002570| 20 22 56 69 64 65 6f 54 | 6f 6f 6c 62 6f 78 2e 68 | "VideoT|oolbox.h|
|00002580| 22 0d 23 69 6e 63 6c 75 | 64 65 20 22 4c 75 6d 69 |".#inclu|de "Lumi|
|00002590| 6e 61 6e 63 65 2e 68 22 | 0d 23 69 6e 63 6c 75 64 |nance.h"|.#includ|
|000025a0| 65 20 22 6e 72 2e 68 22 | 09 09 09 2f 2a 20 70 72 |e "nr.h"|.../* pr|
|000025b0| 6f 74 6f 74 79 70 65 73 | 20 6f 66 20 4e 75 6d 65 |ototypes| of Nume|
|000025c0| 72 69 63 61 6c 20 52 65 | 63 69 70 65 73 20 61 6e |rical Re|cipes an|
|000025d0| 64 20 64 65 66 69 6e 69 | 74 69 6f 6e 20 6f 66 20 |d defini|tion of |
|000025e0| 46 4c 4f 41 54 20 2a 2f | 0d 23 69 6e 63 6c 75 64 |FLOAT */|.#includ|
|000025f0| 65 20 22 6e 72 75 74 69 | 6c 2e 68 22 0d 23 69 66 |e "nruti|l.h".#if|
|00002600| 20 55 4e 49 56 45 52 53 | 41 4c 5f 48 45 41 44 45 | UNIVERS|AL_HEADE|
|00002610| 52 53 0d 09 23 69 6e 63 | 6c 75 64 65 20 3c 4c 6f |RS..#inc|lude <Lo|
|00002620| 77 4d 65 6d 2e 68 3e 0d | 23 65 6c 73 65 0d 09 23 |wMem.h>.|#else..#|
|00002630| 64 65 66 69 6e 65 20 4c | 4d 47 65 74 4d 42 61 72 |define L|MGetMBar|
|00002640| 48 65 69 67 68 74 28 29 | 20 28 2a 20 28 73 68 6f |Height()| (* (sho|
|00002650| 72 74 20 2a 29 20 30 78 | 30 42 41 41 29 0d 09 23 |rt *) 0x|0BAA)..#|
|00002660| 64 65 66 69 6e 65 20 4c | 4d 53 65 74 4d 42 61 72 |define L|MSetMBar|
|00002670| 48 65 69 67 68 74 28 6d | 42 61 72 48 65 69 67 68 |Height(m|BarHeigh|
|00002680| 74 29 20 28 28 2a 20 28 | 73 68 6f 72 74 20 2a 29 |t) ((* (|short *)|
|00002690| 20 30 78 30 42 41 41 29 | 20 3d 20 28 6d 42 61 72 | 0x0BAA)| = (mBar|
|000026a0| 48 65 69 67 68 74 29 29 | 0d 23 65 6e 64 69 66 0d |Height))|.#endif.|
|000026b0| 6c 6f 6e 67 20 49 6e 69 | 74 69 61 6c 69 7a 65 4c |long Ini|tializeL|
|000026c0| 75 6d 69 6e 61 6e 63 65 | 52 65 63 6f 72 64 28 4c |uminance|Record(L|
|000026d0| 75 6d 69 6e 61 6e 63 65 | 52 65 63 6f 72 64 20 2a |uminance|Record *|
|000026e0| 4c 50 2c 73 68 6f 72 74 | 20 66 6c 61 67 73 29 3b |LP,short| flags);|
|000026f0| 0d 0d 23 64 65 66 69 6e | 65 20 41 55 54 4f 4d 41 |..#defin|e AUTOMA|
|00002700| 54 49 43 09 09 31 09 2f | 2a 20 09 3d 30 3a 20 61 |TIC..1./|* .=0: a|
|00002710| 6c 77 61 79 73 20 72 65 | 71 75 65 73 74 20 6d 61 |lways re|quest ma|
|00002720| 6e 75 61 6c 20 70 68 6f | 74 6f 6d 65 74 65 72 20 |nual pho|tometer |
|00002730| 72 65 61 64 69 6e 67 73 | 0d 09 09 09 09 09 09 09 |readings|........|
|00002740| 20 20 20 09 3d 31 3a 20 | 69 66 20 70 6f 73 73 69 | .=1: |if possi|
|00002750| 62 6c 65 2c 20 75 73 65 | 20 41 2f 44 20 63 6f 6e |ble, use| A/D con|
|00002760| 76 65 72 74 65 72 20 74 | 6f 20 72 65 61 64 20 66 |verter t|o read f|
|00002770| 72 6f 6d 20 74 68 65 20 | 70 68 6f 74 6f 6d 65 74 |rom the |photomet|
|00002780| 65 72 20 64 69 72 65 63 | 74 6c 79 20 2a 2f 0d 23 |er direc|tly */.#|
|00002790| 64 65 66 69 6e 65 20 4e | 4c 52 47 42 09 09 09 31 |define N|LRGB...1|
|000027a0| 36 09 2f 2a 20 6e 75 6d | 62 65 72 20 6f 66 20 74 |6./* num|ber of t|
|000027b0| 69 6d 65 73 20 74 6f 20 | 6d 65 61 73 75 72 65 20 |imes to |measure |
|000027c0| 65 61 63 68 20 52 47 42 | 20 67 61 69 6e 2c 20 73 |each RGB| gain, s|
|000027d0| 68 6f 75 6c 64 20 62 65 | 20 3e 31 20 2a 2f 0d 23 |hould be| >1 */.#|
|000027e0| 64 65 66 69 6e 65 20 4c | 55 4d 49 4e 41 4e 43 45 |define L|UMINANCE|
|000027f0| 53 09 09 33 32 09 2f 2a | 20 61 70 70 72 6f 78 2e |S..32./*| approx.|
|00002800| 20 6e 75 6d 62 65 72 20 | 6f 66 20 64 69 66 66 65 | number |of diffe|
|00002810| 72 65 6e 74 20 6c 75 6d | 69 6e 61 6e 63 65 73 20 |rent lum|inances |
|00002820| 74 6f 20 6d 65 61 73 75 | 72 65 20 2a 2f 0d 23 64 |to measu|re */.#d|
|00002830| 65 66 69 6e 65 09 4e 46 | 52 41 4d 45 09 09 09 36 |efine.NF|RAME...6|
|00002840| 30 09 2f 2a 20 6e 75 6d | 62 65 72 20 6f 66 20 66 |0./* num|ber of f|
|00002850| 72 61 6d 65 73 20 70 65 | 72 20 41 44 43 20 6c 75 |rames pe|r ADC lu|
|00002860| 6d 69 6e 61 6e 63 65 20 | 6d 65 61 73 75 72 65 6d |minance |measurem|
|00002870| 65 6e 74 20 2a 2f 0d 23 | 64 65 66 69 6e 65 20 52 |ent */.#|define R|
|00002880| 4f 55 4e 44 5f 4c 55 4d | 49 4e 41 4e 43 45 53 20 |OUND_LUM|INANCES |
|00002890| 28 32 2b 28 32 35 36 2b | 32 35 36 2f 4c 55 4d 49 |(2+(256+|256/LUMI|
|000028a0| 4e 41 4e 43 45 53 2d 31 | 29 2f 28 32 35 36 2f 4c |NANCES-1|)/(256/L|
|000028b0| 55 4d 49 4e 41 4e 43 45 | 53 29 29 0d 09 09 09 09 |UMINANCE|S)).....|
|000028c0| 09 09 09 2f 2a 20 72 6f | 75 6e 64 20 4c 55 4d 49 |.../* ro|und LUMI|
|000028d0| 4e 41 4e 43 45 53 20 75 | 70 20 74 6f 20 74 68 65 |NANCES u|p to the|
|000028e0| 20 6e 65 78 74 20 64 69 | 76 69 73 6f 72 20 6f 66 | next di|visor of|
|000028f0| 20 32 35 36 2c 20 61 64 | 64 20 32 20 2a 2f 0d 0d | 256, ad|d 2 */..|
|00002900| 76 6f 69 64 20 6d 61 69 | 6e 28 76 6f 69 64 29 3b |void mai|n(void);|
|00002910| 0d 76 6f 69 64 20 43 61 | 6c 69 62 72 61 74 65 4c |.void Ca|librateL|
|00002920| 75 6d 69 6e 61 6e 63 65 | 28 76 6f 69 64 29 3b 0d |uminance|(void);.|
|00002930| 76 6f 69 64 20 53 61 76 | 65 44 61 74 61 28 4c 75 |void Sav|eData(Lu|
|00002940| 6d 69 6e 61 6e 63 65 52 | 65 63 6f 72 64 20 2a 4c |minanceR|ecord *L|
|00002950| 50 2c 69 6e 74 20 6e 4c | 2c 69 6e 74 20 56 5b 5d |P,int nL|,int V[]|
|00002960| 2c 64 6f 75 62 6c 65 20 | 4c 5b 5d 0d 09 2c 69 6e |,double |L[]..,in|
|00002970| 74 20 6e 4c 72 67 62 2c | 69 6e 74 20 6e 72 67 62 |t nLrgb,|int nrgb|
|00002980| 5b 33 5d 5b 4e 4c 52 47 | 42 5d 5b 33 5d 2c 64 6f |[3][NLRG|B][3],do|
|00002990| 75 62 6c 65 20 4c 72 67 | 62 5b 33 5d 5b 4e 4c 52 |uble Lrg|b[3][NLR|
|000029a0| 47 42 5d 2c 64 6f 75 62 | 6c 65 20 67 61 69 6e 5b |GB],doub|le gain[|
|000029b0| 33 5d 29 3b 0d 76 6f 69 | 64 20 53 61 76 65 4c 75 |3]);.voi|d SaveLu|
|000029c0| 6d 69 6e 61 6e 63 65 52 | 65 63 6f 72 64 28 4c 75 |minanceR|ecord(Lu|
|000029d0| 6d 69 6e 61 6e 63 65 52 | 65 63 6f 72 64 20 2a 4c |minanceR|ecord *L|
|000029e0| 50 29 3b 0d 46 4c 4f 41 | 54 20 50 6f 77 65 72 52 |P);.FLOA|T PowerR|
|000029f0| 4d 53 45 72 72 6f 72 28 | 46 4c 4f 41 54 20 70 5b |MSError(|FLOAT p[|
|00002a00| 5d 29 3b 0d 64 6f 75 62 | 6c 65 20 47 65 74 41 4c |]);.doub|le GetAL|
|00002a10| 75 6d 69 6e 61 6e 63 65 | 28 4c 75 6d 69 6e 61 6e |uminance|(Luminan|
|00002a20| 63 65 52 65 63 6f 72 64 | 20 2a 4c 50 2c 47 44 48 |ceRecord| *LP,GDH|
|00002a30| 61 6e 64 6c 65 20 64 65 | 76 69 63 65 2c 0d 09 69 |andle de|vice,..i|
|00002a40| 6e 74 20 66 72 61 6d 65 | 73 2c 64 6f 75 62 6c 65 |nt frame|s,double|
|00002a50| 20 4c 75 6d 69 6e 61 6e | 63 65 50 65 72 56 6f 6c | Luminan|cePerVol|
|00002a60| 74 61 67 65 2c 69 6e 74 | 20 65 6e 74 72 79 2c 69 |tage,int| entry,i|
|00002a70| 6e 74 20 72 65 64 2c 69 | 6e 74 20 67 72 65 65 6e |nt red,i|nt green|
|00002a80| 2c 69 6e 74 20 62 6c 75 | 65 29 3b 0d 76 6f 69 64 |,int blu|e);.void|
|00002a90| 20 4c 54 6f 56 48 75 6e | 74 28 4c 75 6d 69 6e 61 | LToVHun|t(Lumina|
|00002aa0| 6e 63 65 52 65 63 6f 72 | 64 20 2a 4c 50 2c 47 44 |nceRecor|d *LP,GD|
|00002ab0| 48 61 6e 64 6c 65 20 64 | 65 76 69 63 65 2c 43 57 |Handle d|evice,CW|
|00002ac0| 69 6e 64 6f 77 50 74 72 | 20 77 69 6e 64 6f 77 2c |indowPtr| window,|
|00002ad0| 0d 09 64 6f 75 62 6c 65 | 20 4c 75 6d 69 6e 61 6e |..double| Luminan|
|00002ae0| 63 65 50 65 72 56 6f 6c | 74 61 67 65 2c 69 6e 74 |cePerVol|tage,int|
|00002af0| 20 66 72 61 6d 65 73 2c | 64 6f 75 62 6c 65 20 64 | frames,|double d|
|00002b00| 61 72 6b 4c 75 6d 69 6e | 61 6e 63 65 29 3b 0d 0d |arkLumin|ance);..|
|00002b10| 2f 2a 20 54 68 65 73 65 | 20 76 61 72 69 61 62 6c |/* These| variabl|
|00002b20| 65 73 20 61 72 65 20 6f | 75 74 20 68 65 72 65 2c |es are o|ut here,|
|00002b30| 20 61 73 20 67 6c 6f 62 | 61 6c 73 2c 20 73 6f 20 | as glob|als, so |
|00002b40| 74 68 61 74 20 50 6f 77 | 65 72 52 4d 53 45 72 72 |that Pow|erRMSErr|
|00002b50| 6f 72 20 63 61 6e 20 61 | 63 63 65 73 73 20 74 68 |or can a|ccess th|
|00002b60| 65 6d 20 64 69 72 65 63 | 74 6c 79 20 2a 2f 0d 73 |em direc|tly */.s|
|00002b70| 74 61 74 69 63 20 69 6e | 74 20 6e 4c 3d 52 4f 55 |tatic in|t nL=ROU|
|00002b80| 4e 44 5f 4c 55 4d 49 4e | 41 4e 43 45 53 3b 0d 73 |ND_LUMIN|ANCES;.s|
|00002b90| 74 61 74 69 63 20 64 6f | 75 62 6c 65 20 4c 5b 52 |tatic do|uble L[R|
|00002ba0| 4f 55 4e 44 5f 4c 55 4d | 49 4e 41 4e 43 45 53 5d |OUND_LUM|INANCES]|
|00002bb0| 3b 09 2f 2a 20 6c 75 6d | 69 6e 61 6e 63 65 20 61 |;./* lum|inance a|
|00002bc0| 74 20 56 5b 69 5d 20 2a | 2f 0d 73 74 61 74 69 63 |t V[i] *|/.static|
|00002bd0| 20 69 6e 74 20 56 5b 52 | 4f 55 4e 44 5f 4c 55 4d | int V[R|OUND_LUM|
|00002be0| 49 4e 41 4e 43 45 53 5d | 3b 0d 73 74 61 74 69 63 |INANCES]|;.static|
|00002bf0| 20 69 6e 74 20 76 61 72 | 69 61 62 6c 65 73 3d 34 | int var|iables=4|
|00002c00| 3b 0d 73 74 61 74 69 63 | 20 46 4c 4f 41 54 20 2a |;.static| FLOAT *|
|00002c10| 70 3b 0d 0d 76 6f 69 64 | 20 43 61 6c 69 62 72 61 |p;..void| Calibra|
|00002c20| 74 65 4c 75 6d 69 6e 61 | 6e 63 65 28 76 6f 69 64 |teLumina|nce(void|
|00002c30| 29 3b 0d 0d 76 6f 69 64 | 20 6d 61 69 6e 28 76 6f |);..void| main(vo|
|00002c40| 69 64 29 0d 7b 0d 09 6c | 6f 6e 67 20 73 79 73 74 |id).{..l|ong syst|
|00002c50| 65 6d 3b 0d 09 0d 09 47 | 65 73 74 61 6c 74 28 67 |em;....G|estalt(g|
|00002c60| 65 73 74 61 6c 74 53 79 | 73 74 65 6d 56 65 72 73 |estaltSy|stemVers|
|00002c70| 69 6f 6e 2c 26 73 79 73 | 74 65 6d 29 3b 0d 09 69 |ion,&sys|tem);..i|
|00002c80| 66 28 73 79 73 74 65 6d | 3c 30 78 36 30 35 29 50 |f(system|<0x605)P|
|00002c90| 72 69 6e 74 66 45 78 69 | 74 28 22 53 6f 72 72 79 |rintfExi|t("Sorry|
|00002ca0| 2c 20 49 20 6e 65 65 64 | 20 61 74 20 6c 65 61 73 |, I need| at leas|
|00002cb0| 74 20 53 79 73 74 65 6d | 20 36 2e 30 35 2e 5c 6e |t System| 6.05.\n|
|00002cc0| 22 29 3b 0d 09 52 65 71 | 75 69 72 65 28 67 65 73 |");..Req|uire(ges|
|00002cd0| 74 61 6c 74 38 42 69 74 | 51 44 29 3b 0d 09 53 74 |talt8Bit|QD);..St|
|00002ce0| 61 63 6b 47 72 6f 77 28 | 73 69 7a 65 6f 66 28 4c |ackGrow(|sizeof(L|
|00002cf0| 75 6d 69 6e 61 6e 63 65 | 52 65 63 6f 72 64 29 2b |uminance|Record)+|
|00002d00| 32 4c 2a 33 2a 4e 4c 52 | 47 42 2a 73 69 7a 65 6f |2L*3*NLR|GB*sizeo|
|00002d10| 66 28 64 6f 75 62 6c 65 | 29 2b 31 30 30 30 29 3b |f(double|)+1000);|
|00002d20| 0d 09 43 61 6c 69 62 72 | 61 74 65 4c 75 6d 69 6e |..Calibr|ateLumin|
|00002d30| 61 6e 63 65 28 29 3b 0d | 7d 0d 0d 76 6f 69 64 20 |ance();.|}..void |
|00002d40| 43 61 6c 69 62 72 61 74 | 65 4c 75 6d 69 6e 61 6e |Calibrat|eLuminan|
|00002d50| 63 65 28 76 6f 69 64 29 | 0d 7b 0d 09 69 6e 74 20 |ce(void)|.{..int |
|00002d60| 69 2c 6a 2c 6b 2c 69 69 | 2c 62 6f 74 74 6f 6d 2c |i,j,k,ii|,bottom,|
|00002d70| 73 63 72 65 65 6e 2c 65 | 72 72 6f 72 3b 0d 09 73 |screen,e|rror;..s|
|00002d80| 68 6f 72 74 20 66 6f 6e | 74 4e 75 6d 62 65 72 3b |hort fon|tNumber;|
|00002d90| 0d 09 63 68 61 72 20 73 | 74 72 69 6e 67 5b 31 30 |..char s|tring[10|
|00002da0| 30 30 5d 3b 0d 09 52 65 | 63 74 20 72 65 63 74 2c |00];..Re|ct rect,|
|00002db0| 74 65 73 74 52 65 63 74 | 2c 6c 61 62 65 6c 52 65 |testRect|,labelRe|
|00002dc0| 63 74 3b 0d 09 47 44 48 | 61 6e 64 6c 65 20 64 65 |ct;..GDH|andle de|
|00002dd0| 76 69 63 65 3d 4e 55 4c | 4c 2c 6f 6c 64 44 65 76 |vice=NUL|L,oldDev|
|00002de0| 69 63 65 3d 4e 55 4c 4c | 3b 0d 09 57 69 6e 64 6f |ice=NULL|;..Windo|
|00002df0| 77 50 74 72 20 77 69 6e | 64 6f 77 3d 4e 55 4c 4c |wPtr win|dow=NULL|
|00002e00| 2c 6f 6c 64 57 69 6e 64 | 6f 77 3d 4e 55 4c 4c 3b |,oldWind|ow=NULL;|
|00002e10| 0d 09 69 6e 74 20 6e 4c | 72 67 62 3d 4e 4c 52 47 |..int nL|rgb=NLRG|
|00002e20| 42 3b 0d 09 64 6f 75 62 | 6c 65 20 4c 72 67 62 5b |B;..doub|le Lrgb[|
|00002e30| 33 5d 5b 4e 4c 52 47 42 | 5d 3b 0d 09 69 6e 74 20 |3][NLRGB|];..int |
|00002e40| 6e 72 67 62 5b 33 5d 5b | 4e 4c 52 47 42 5d 5b 33 |nrgb[3][|NLRGB][3|
|00002e50| 5d 3b 0d 09 64 6f 75 62 | 6c 65 20 67 61 69 6e 5b |];..doub|le gain[|
|00002e60| 33 5d 2c 6c 75 6d 69 6e | 61 6e 63 65 50 65 72 56 |3],lumin|ancePerV|
|00002e70| 6f 6c 74 61 67 65 3d 31 | 30 30 30 2e 30 3b 0d 09 |oltage=1|000.0;..|
|00002e80| 4c 75 6d 69 6e 61 6e 63 | 65 52 65 63 6f 72 64 20 |Luminanc|eRecord |
|00002e90| 4c 52 2c 2a 4c 50 3b 0d | 09 46 4c 4f 41 54 20 2a |LR,*LP;.|.FLOAT *|
|00002ea0| 78 2c 2a 79 2c 2a 73 69 | 67 3b 09 09 09 09 09 09 |x,*y,*si|g;......|
|00002eb0| 2f 2f 20 66 6f 72 20 70 | 6f 6c 79 6e 6f 6d 69 61 |// for p|olynomia|
|00002ec0| 6c 20 66 69 74 0d 09 46 | 4c 4f 41 54 20 2a 61 2c |l fit..F|LOAT *a,|
|00002ed0| 2a 2a 75 2c 2a 2a 76 2c | 2a 77 2c 2a 2a 63 76 6d |**u,**v,|*w,**cvm|
|00002ee0| 2c 63 68 69 73 71 3b 09 | 09 2f 2f 20 66 6f 72 20 |,chisq;.|.// for |
|00002ef0| 70 6f 6c 79 6e 6f 6d 69 | 61 6c 20 66 69 74 0d 09 |polynomi|al fit..|
|00002f00| 69 6e 74 20 6d 61 3b 09 | 09 09 09 09 09 09 09 09 |int ma;.|........|
|00002f10| 2f 2f 20 66 6f 72 20 70 | 6f 6c 79 6e 6f 6d 69 61 |// for p|olynomia|
|00002f20| 6c 20 66 69 74 0d 09 46 | 4c 4f 41 54 20 2a 2a 78 |l fit..F|LOAT **x|
|00002f30| 69 2c 66 74 6f 6c 2c 66 | 72 65 74 3b 09 09 09 09 |i,ftol,f|ret;....|
|00002f40| 09 2f 2f 20 66 6f 72 20 | 70 6f 77 65 72 20 6c 61 |.// for |power la|
|00002f50| 77 20 66 69 74 0d 09 69 | 6e 74 20 69 74 65 72 3b |w fit..i|nt iter;|
|00002f60| 09 09 09 09 09 09 09 09 | 2f 2f 20 66 6f 72 20 70 |........|// for p|
|00002f70| 6f 77 65 72 20 6c 61 77 | 20 66 69 74 0d 09 64 6f |ower law| fit..do|
|00002f80| 75 62 6c 65 20 65 2c 66 | 2c 56 56 2c 6c 75 6d 69 |uble e,f|,VV,lumi|
|00002f90| 6e 61 6e 63 65 2c 64 61 | 72 6b 4c 75 6d 69 6e 61 |nance,da|rkLumina|
|00002fa0| 6e 63 65 3b 0d 09 69 6e | 74 20 72 65 61 64 4e 75 |nce;..in|t readNu|
|00002fb0| 6d 62 65 72 2c 72 65 61 | 64 54 6f 74 61 6c 2c 69 |mber,rea|dTotal,i|
|00002fc0| 73 47 72 61 79 2c 74 65 | 73 74 53 69 7a 65 2c 63 |sGray,te|stSize,c|
|00002fd0| 79 63 6c 65 73 2c 66 72 | 61 6d 65 73 2c 63 6c 75 |ycles,fr|ames,clu|
|00002fe0| 74 53 69 7a 65 2c 6d 6f | 64 65 3b 0d 09 42 6f 6f |tSize,mo|de;..Boo|
|00002ff0| 6c 65 61 6e 20 61 75 74 | 6f 6d 61 74 69 63 2c 73 |lean aut|omatic,s|
|00003000| 6b 69 70 52 47 42 2c 79 | 65 73 3b 0d 09 63 68 61 |kipRGB,y|es;..cha|
|00003010| 72 20 63 6f 6c 6f 72 47 | 72 61 79 5b 32 5d 5b 38 |r colorG|ray[2][8|
|00003020| 5d 3d 7b 22 63 6f 6c 6f | 72 22 2c 22 67 72 61 79 |]={"colo|r","gray|
|00003030| 22 7d 3b 0d 09 73 68 6f | 72 74 20 6f 6c 64 50 69 |"};..sho|rt oldPi|
|00003040| 78 65 6c 53 69 7a 65 2c | 6f 6c 64 49 73 43 6f 6c |xelSize,|oldIsCol|
|00003050| 6f 72 3b 0d 09 0d 09 61 | 73 73 65 72 74 28 53 74 |or;....a|ssert(St|
|00003060| 61 63 6b 53 70 61 63 65 | 28 29 3e 34 30 30 30 29 |ackSpace|()>4000)|
|00003070| 3b 0d 09 61 75 74 6f 6d | 61 74 69 63 3d 41 55 54 |;..autom|atic=AUT|
|00003080| 4f 4d 41 54 49 43 20 26 | 26 20 28 43 61 72 64 53 |OMATIC &|& (CardS|
|00003090| 6c 6f 74 28 22 2e 46 6f | 72 65 52 75 6e 6e 65 72 |lot(".Fo|reRunner|
|000030a0| 22 29 3e 30 29 3b 09 2f | 2a 20 64 69 73 61 62 6c |")>0);./|* disabl|
|000030b0| 65 20 69 66 20 63 61 72 | 64 20 69 73 20 6d 69 73 |e if car|d is mis|
|000030c0| 73 69 6e 67 20 2a 2f 0d | 09 4c 50 3d 26 4c 52 3b |sing */.|.LP=&LR;|
|000030d0| 0d 09 23 64 65 66 69 6e | 65 20 57 49 44 54 48 20 |..#defin|e WIDTH |
|000030e0| 31 30 35 0d 09 23 69 66 | 20 28 54 48 49 4e 4b 5f |105..#if| (THINK_|
|000030f0| 43 20 7c 7c 20 54 48 49 | 4e 4b 5f 43 50 4c 55 53 |C || THI|NK_CPLUS|
|00003100| 20 7c 7c 20 53 59 4d 41 | 4e 54 45 43 5f 43 29 0d | || SYMA|NTEC_C).|
|00003110| 09 09 63 6f 6e 73 6f 6c | 65 5f 6f 70 74 69 6f 6e |..consol|e_option|
|00003120| 73 2e 74 69 74 6c 65 3d | 22 5c 70 43 61 6c 69 62 |s.title=|"\pCalib|
|00003130| 72 61 74 65 4c 75 6d 69 | 6e 61 6e 63 65 22 3b 09 |rateLumi|nance";.|
|00003140| 2f 2a 20 63 68 61 6e 67 | 65 20 74 68 65 20 63 6f |/* chang|e the co|
|00003150| 6e 73 6f 6c 65 20 77 69 | 6e 64 6f 77 20 2a 2f 0d |nsole wi|ndow */.|
|00003160| 09 09 63 6f 6e 73 6f 6c | 65 5f 6f 70 74 69 6f 6e |..consol|e_option|
|00003170| 73 2e 6e 72 6f 77 73 3d | 31 32 3b 0d 09 09 63 6f |s.nrows=|12;...co|
|00003180| 6e 73 6f 6c 65 5f 6f 70 | 74 69 6f 6e 73 2e 74 6f |nsole_op|tions.to|
|00003190| 70 3d 32 30 3b 0d 09 09 | 63 6f 6e 73 6f 6c 65 5f |p=20;...|console_|
|000031a0| 6f 70 74 69 6f 6e 73 2e | 6c 65 66 74 3d 31 3b 0d |options.|left=1;.|
|000031b0| 09 09 63 6f 6e 73 6f 6c | 65 5f 6f 70 74 69 6f 6e |..consol|e_option|
|000031c0| 73 2e 6e 63 6f 6c 73 3d | 57 49 44 54 48 3b 0d 09 |s.ncols=|WIDTH;..|
|000031d0| 09 63 6f 6e 73 6f 6c 65 | 5f 6f 70 74 69 6f 6e 73 |.console|_options|
|000031e0| 2e 74 78 53 69 7a 65 3d | 39 3b 0d 09 09 70 72 69 |.txSize=|9;...pri|
|000031f0| 6e 74 66 28 22 5c 6e 22 | 29 3b 09 09 09 09 09 09 |ntf("\n"|);......|
|00003200| 09 09 09 2f 2a 20 61 73 | 6b 20 54 48 49 4e 4b 20 |.../* as|k THINK |
|00003210| 43 20 74 6f 20 69 6e 69 | 74 69 61 6c 69 7a 65 20 |C to ini|tialize |
|00003220| 51 75 69 63 6b 44 72 61 | 77 20 2a 2f 0d 09 09 43 |QuickDra|w */...C|
|00003230| 6f 70 79 51 75 69 63 6b | 44 72 61 77 47 6c 6f 62 |opyQuick|DrawGlob|
|00003240| 61 6c 73 28 29 3b 09 09 | 09 09 09 09 09 2f 2f 20 |als();..|.....// |
|00003250| 4d 61 6b 65 20 73 75 72 | 65 20 71 64 20 69 73 20 |Make sur|e qd is |
|00003260| 76 61 6c 69 64 2e 0d 09 | 23 65 6c 69 66 20 5f 5f |valid...|#elif __|
|00003270| 4d 57 45 52 4b 53 5f 5f | 0d 09 09 53 49 4f 55 58 |MWERKS__|...SIOUX|
|00003280| 53 65 74 74 69 6e 67 73 | 2e 74 6f 70 70 69 78 65 |Settings|.toppixe|
|00003290| 6c 3d 4c 4d 47 65 74 4d | 42 61 72 48 65 69 67 68 |l=LMGetM|BarHeigh|
|000032a0| 74 28 29 2b 31 3b 09 2f | 2f 20 61 6c 6c 6f 77 20 |t()+1;./|/ allow |
|000032b0| 66 6f 72 20 6d 65 6e 75 | 20 62 61 72 20 6f 6e 6c |for menu| bar onl|
|000032c0| 79 0d 09 09 53 49 4f 55 | 58 53 65 74 74 69 6e 67 |y...SIOU|XSetting|
|000032d0| 73 2e 6c 65 66 74 70 69 | 78 65 6c 3d 31 3b 0d 09 |s.leftpi|xel=1;..|
|000032e0| 09 53 49 4f 55 58 53 65 | 74 74 69 6e 67 73 2e 72 |.SIOUXSe|ttings.r|
|000032f0| 6f 77 73 3d 31 33 3b 0d | 09 09 53 49 4f 55 58 53 |ows=13;.|..SIOUXS|
|00003300| 65 74 74 69 6e 67 73 2e | 63 6f 6c 75 6d 6e 73 3d |ettings.|columns=|
|00003310| 57 49 44 54 48 3b 0d 09 | 09 53 49 4f 55 58 53 65 |WIDTH;..|.SIOUXSe|
|00003320| 74 74 69 6e 67 73 2e 61 | 75 74 6f 63 6c 6f 73 65 |ttings.a|utoclose|
|00003330| 6f 6e 71 75 69 74 3d 31 | 3b 0d 09 09 53 49 4f 55 |onquit=1|;...SIOU|
|00003340| 58 53 65 74 74 69 6e 67 | 73 2e 73 68 6f 77 73 74 |XSetting|s.showst|
|00003350| 61 74 75 73 6c 69 6e 65 | 3d 30 3b 0d 09 09 53 49 |atusline|=0;...SI|
|00003360| 4f 55 58 53 65 74 74 69 | 6e 67 73 2e 61 73 6b 74 |OUXSetti|ngs.askt|
|00003370| 6f 73 61 76 65 6f 6e 63 | 6c 6f 73 65 3d 30 3b 0d |osaveonc|lose=0;.|
|00003380| 09 09 53 49 4f 55 58 53 | 65 74 74 69 6e 67 73 2e |..SIOUXS|ettings.|
|00003390| 66 6f 6e 74 73 69 7a 65 | 3d 39 3b 0d 09 09 70 72 |fontsize|=9;...pr|
|000033a0| 69 6e 74 66 28 22 5c 6e | 22 29 3b 0d 09 09 53 49 |intf("\n|");...SI|
|000033b0| 4f 55 58 53 65 74 54 69 | 74 6c 65 28 22 5c 70 43 |OUXSetTi|tle("\pC|
|000033c0| 61 6c 69 62 72 61 74 65 | 4c 75 6d 69 6e 61 6e 63 |alibrate|Luminanc|
|000033d0| 65 22 29 3b 0d 09 23 65 | 6c 73 65 0d 09 09 49 6e |e");..#e|lse...In|
|000033e0| 69 74 47 72 61 66 28 26 | 71 64 2e 74 68 65 50 6f |itGraf(&|qd.thePo|
|000033f0| 72 74 29 3b 0d 09 09 49 | 6e 69 74 57 69 6e 64 6f |rt);...I|nitWindo|
|00003400| 77 73 28 29 3b 0d 09 09 | 49 6e 69 74 46 6f 6e 74 |ws();...|InitFont|
|00003410| 73 28 29 3b 0d 09 23 65 | 6e 64 69 66 0d 0d 09 70 |s();..#e|ndif...p|
|00003420| 72 69 6e 74 66 28 22 5c | 6e 22 29 3b 09 2f 2f 20 |rintf("\|n");.// |
|00003430| 6d 61 6b 65 20 73 75 72 | 65 20 74 68 61 74 20 6f |make sur|e that o|
|00003440| 6c 64 57 69 6e 64 6f 77 | 20 69 73 20 74 68 65 20 |ldWindow| is the |
|00003450| 63 6f 6e 73 6f 6c 65 0d | 09 47 65 74 50 6f 72 74 |console.|.GetPort|
|00003460| 28 26 6f 6c 64 57 69 6e | 64 6f 77 29 3b 0d 09 6f |(&oldWin|dow);..o|
|00003470| 6c 64 44 65 76 69 63 65 | 3d 47 65 74 47 44 65 76 |ldDevice|=GetGDev|
|00003480| 69 63 65 28 29 3b 0d 09 | 53 65 74 50 6f 72 74 28 |ice();..|SetPort(|
|00003490| 6f 6c 64 57 69 6e 64 6f | 77 29 3b 0d 09 53 65 74 |oldWindo|w);..Set|
|000034a0| 47 44 65 76 69 63 65 28 | 6f 6c 64 44 65 76 69 63 |GDevice(|oldDevic|
|000034b0| 65 29 3b 0d 0d 09 70 72 | 69 6e 74 66 28 42 72 65 |e);...pr|intf(Bre|
|000034c0| 61 6b 4c 69 6e 65 73 28 | 22 57 65 6c 63 6f 6d 65 |akLines(|"Welcome|
|000034d0| 20 74 6f 20 43 61 6c 69 | 62 72 61 74 65 4c 75 6d | to Cali|brateLum|
|000034e0| 69 6e 61 6e 63 65 20 76 | 65 72 73 69 6f 6e 20 25 |inance v|ersion %|
|000034f0| 73 2e 5c 6e 22 0d 09 22 | 54 68 69 73 20 70 72 6f |s.\n".."|This pro|
|00003500| 67 72 61 6d 20 68 65 6c | 70 73 20 79 6f 75 20 74 |gram hel|ps you t|
|00003510| 6f 20 63 61 6c 69 62 72 | 61 74 65 20 79 6f 75 72 |o calibr|ate your|
|00003520| 20 49 53 52 20 56 69 64 | 65 6f 20 41 74 74 65 6e | ISR Vid|eo Atten|
|00003530| 75 61 74 6f 72 2c 20 61 | 73 20 77 65 6c 6c 20 61 |uator, a|s well a|
|00003540| 73 20 79 6f 75 72 20 76 | 69 64 65 6f 20 63 61 72 |s your v|ideo car|
|00003550| 64 20 22 0d 09 22 61 6e | 64 20 6d 6f 6e 69 74 6f |d ".."an|d monito|
|00003560| 72 2e 20 27 45 6e 74 65 | 72 27 20 69 6e 64 69 63 |r. 'Ente|r' indic|
|00003570| 61 74 65 73 20 74 68 61 | 74 20 79 6f 75 20 73 68 |ates tha|t you sh|
|00003580| 6f 75 6c 64 20 74 79 70 | 65 20 69 6e 20 61 20 6e |ould typ|e in a n|
|00003590| 75 6d 62 65 72 20 6f 72 | 20 6c 65 74 74 65 72 20 |umber or| letter |
|000035a0| 66 6f 6c 6c 6f 77 65 64 | 20 62 79 20 27 52 45 54 |followed| by 'RET|
|000035b0| 55 52 4e 27 2e 20 22 0d | 09 22 4d 6f 73 74 20 71 |URN'. ".|."Most q|
|000035c0| 75 65 73 74 69 6f 6e 73 | 20 70 72 6f 76 69 64 65 |uestions| provide|
|000035d0| 20 61 20 64 65 66 61 75 | 6c 74 20 61 6e 73 77 65 | a defau|lt answe|
|000035e0| 72 20 28 69 6e 20 70 61 | 72 65 6e 74 68 65 73 65 |r (in pa|renthese|
|000035f0| 73 29 2e 20 22 0d 09 22 | 4a 75 73 74 20 68 69 74 |s). ".."|Just hit|
|00003600| 20 27 52 45 54 55 52 4e | 27 20 69 66 20 79 6f 75 | 'RETURN|' if you|
|00003610| 20 77 61 6e 74 20 74 68 | 65 20 64 65 66 61 75 6c | want th|e defaul|
|00003620| 74 2e 20 28 4f 72 20 68 | 69 74 20 43 6f 6d 6d 61 |t. (Or h|it Comma|
|00003630| 6e 64 2d 2e 20 74 6f 20 | 71 75 69 74 2e 29 20 22 |nd-. to |quit.) "|
|00003640| 0d 09 22 57 68 65 72 65 | 20 61 70 70 72 6f 70 72 |.."Where| appropr|
|00003650| 69 61 74 65 2c 20 74 68 | 65 20 64 65 66 61 75 6c |iate, th|e defaul|
|00003660| 74 20 69 73 20 74 61 6b | 65 6e 20 66 72 6f 6d 20 |t is tak|en from |
|00003670| 6c 61 74 65 73 74 20 4c | 75 6d 69 6e 61 6e 63 65 |latest L|uminance|
|00003680| 52 65 63 6f 72 64 2e 5c | 6e 22 2c 57 49 44 54 48 |Record.\|n",WIDTH|
|00003690| 29 2c 5f 5f 44 41 54 45 | 5f 5f 29 3b 0d 0d 09 69 |),__DATE|__);...i|
|000036a0| 66 28 47 65 74 53 63 72 | 65 65 6e 44 65 76 69 63 |f(GetScr|eenDevic|
|000036b0| 65 28 31 29 20 3d 3d 20 | 4e 55 4c 4c 29 73 63 72 |e(1) == |NULL)scr|
|000036c0| 65 65 6e 3d 30 3b 0d 09 | 65 6c 73 65 20 64 6f 7b |een=0;..|else do{|
|000036d0| 0d 09 09 73 63 72 65 65 | 6e 3d 31 3b 0d 09 09 73 |...scree|n=1;...s|
|000036e0| 63 72 65 65 6e 3d 43 68 | 6f 6f 73 65 53 63 72 65 |creen=Ch|ooseScre|
|000036f0| 65 6e 28 73 63 72 65 65 | 6e 2c 22 57 68 69 63 68 |en(scree|n,"Which|
|00003700| 20 73 63 72 65 65 6e 20 | 64 6f 20 79 6f 75 20 77 | screen |do you w|
|00003710| 61 6e 74 20 74 6f 20 63 | 61 6c 69 62 72 61 74 65 |ant to c|alibrate|
|00003720| 3f 22 29 3b 0d 09 7d 77 | 68 69 6c 65 28 47 65 74 |?");..}w|hile(Get|
|00003730| 53 63 72 65 65 6e 44 65 | 76 69 63 65 28 73 63 72 |ScreenDe|vice(scr|
|00003740| 65 65 6e 29 3d 3d 4e 55 | 4c 4c 29 3b 0d 09 73 70 |een)==NU|LL);..sp|
|00003750| 72 69 6e 74 66 28 73 74 | 72 69 6e 67 2c 22 4c 75 |rintf(st|ring,"Lu|
|00003760| 6d 69 6e 61 6e 63 65 52 | 65 63 6f 72 64 25 64 2e |minanceR|ecord%d.|
|00003770| 68 22 2c 73 63 72 65 65 | 6e 29 3b 0d 09 49 6e 69 |h",scree|n);..Ini|
|00003780| 74 69 61 6c 69 7a 65 4c | 75 6d 69 6e 61 6e 63 65 |tializeL|uminance|
|00003790| 52 65 63 6f 72 64 28 4c | 50 2c 30 29 3b 0d 09 69 |Record(L|P,0);..i|
|000037a0| 3d 52 65 61 64 4c 75 6d | 69 6e 61 6e 63 65 52 65 |=ReadLum|inanceRe|
|000037b0| 63 6f 72 64 28 73 74 72 | 69 6e 67 2c 4c 50 2c 30 |cord(str|ing,LP,0|
|000037c0| 29 3b 09 09 2f 2f 20 74 | 72 79 20 74 6f 20 72 65 |);..// t|ry to re|
|000037d0| 61 64 20 6c 61 74 65 73 | 74 20 4c 75 6d 69 6e 61 |ad lates|t Lumina|
|000037e0| 6e 63 65 52 65 63 6f 72 | 64 0d 09 69 66 28 69 3e |nceRecor|d..if(i>|
|000037f0| 30 29 70 72 69 6e 74 66 | 28 22 53 75 63 63 65 73 |0)printf|("Succes|
|00003800| 73 66 75 6c 6c 79 20 72 | 65 61 64 20 6f 6c 64 20 |sfully r|ead old |
|00003810| d2 25 73 d3 20 74 6f 20 | 73 65 74 20 64 65 66 61 |.%s. to |set defa|
|00003820| 75 6c 74 20 76 61 6c 75 | 65 73 2e 5c 6e 22 2c 73 |ult valu|es.\n",s|
|00003830| 74 72 69 6e 67 29 3b 0d | 09 65 6c 73 65 7b 0d 09 |tring);.|.else{..|
|00003840| 09 70 72 69 6e 74 66 28 | 22 43 6f 75 6c 64 6e 27 |.printf(|"Couldn'|
|00003850| 74 20 66 69 6e 64 20 61 | 6e 20 6f 6c 64 20 63 6f |t find a|n old co|
|00003860| 70 79 20 6f 66 20 d2 25 | 73 d3 3b 20 63 72 65 61 |py of .%|s.; crea|
|00003870| 74 69 6e 67 20 6e 65 77 | 20 6f 6e 65 20 66 72 6f |ting new| one fro|
|00003880| 6d 20 73 63 72 61 74 63 | 68 2e 5c 6e 22 2c 73 74 |m scratc|h.\n",st|
|00003890| 72 69 6e 67 29 3b 0d 09 | 09 4c 52 2e 64 70 69 3d |ring);..|.LR.dpi=|
|000038a0| 37 36 2e 30 3b 09 2f 2a | 20 70 69 78 65 6c 73 20 |76.0;./*| pixels |
|000038b0| 70 65 72 20 69 6e 63 68 | 20 2a 2f 0d 09 09 4c 50 |per inch| */...LP|
|000038c0| 2d 3e 75 6e 69 74 73 3d | 22 63 64 2f 6d 5e 32 22 |->units=|"cd/m^2"|
|000038d0| 3b 0d 09 7d 0d 09 4c 50 | 2d 3e 73 63 72 65 65 6e |;..}..LP|->screen|
|000038e0| 3d 73 63 72 65 65 6e 3b | 0d 09 4c 50 2d 3e 72 61 |=screen;|..LP->ra|
|000038f0| 6e 67 65 53 65 74 3d 30 | 3b 09 2f 2a 20 69 6e 64 |ngeSet=0|;./* ind|
|00003900| 69 63 61 74 65 20 74 68 | 61 74 20 72 61 6e 67 65 |icate th|at range|
|00003910| 20 70 61 72 61 6d 65 74 | 65 72 73 20 68 61 76 65 | paramet|ers have|
|00003920| 20 79 65 74 20 74 6f 20 | 62 65 20 73 65 74 20 2a | yet to |be set *|
|00003930| 2f 0d 09 4c 50 2d 3e 4c | 2e 65 78 69 73 74 73 3d |/..LP->L|.exists=|
|00003940| 30 3b 09 2f 2a 20 69 6e | 64 69 63 61 74 65 20 74 |0;./* in|dicate t|
|00003950| 68 61 74 20 6c 75 6d 69 | 6e 61 6e 63 65 20 74 61 |hat lumi|nance ta|
|00003960| 62 6c 65 20 68 61 73 20 | 79 65 74 20 74 6f 20 62 |ble has |yet to b|
|00003970| 65 20 69 6e 69 74 69 61 | 6c 69 7a 65 64 20 2a 2f |e initia|lized */|
|00003980| 0d 09 47 65 74 50 6f 72 | 74 28 26 6f 6c 64 57 69 |..GetPor|t(&oldWi|
|00003990| 6e 64 6f 77 29 3b 0d 09 | 6f 6c 64 44 65 76 69 63 |ndow);..|oldDevic|
|000039a0| 65 3d 47 65 74 47 44 65 | 76 69 63 65 28 29 3b 0d |e=GetGDe|vice();.|
|000039b0| 0d 09 64 65 76 69 63 65 | 3d 47 65 74 53 63 72 65 |..device|=GetScre|
|000039c0| 65 6e 44 65 76 69 63 65 | 28 4c 50 2d 3e 73 63 72 |enDevice|(LP->scr|
|000039d0| 65 65 6e 29 3b 09 09 2f | 2f 20 63 68 6f 6f 73 65 |een);../|/ choose|
|000039e0| 20 77 68 69 63 68 20 73 | 63 72 65 65 6e 20 74 6f | which s|creen to|
|000039f0| 20 74 65 73 74 0d 09 6f | 6c 64 50 69 78 65 6c 53 | test..o|ldPixelS|
|00003a00| 69 7a 65 3d 28 2a 2a 28 | 2a 2a 64 65 76 69 63 65 |ize=(**(|**device|
|00003a10| 29 2e 67 64 50 4d 61 70 | 29 2e 70 69 78 65 6c 53 |).gdPMap|).pixelS|
|00003a20| 69 7a 65 3b 0d 09 6f 6c | 64 49 73 43 6f 6c 6f 72 |ize;..ol|dIsColor|
|00003a30| 3d 54 65 73 74 44 65 76 | 69 63 65 41 74 74 72 69 |=TestDev|iceAttri|
|00003a40| 62 75 74 65 28 64 65 76 | 69 63 65 2c 67 64 44 65 |bute(dev|ice,gdDe|
|00003a50| 76 54 79 70 65 29 3b 0d | 09 47 44 53 61 76 65 47 |vType);.|.GDSaveG|
|00003a60| 61 6d 6d 61 28 64 65 76 | 69 63 65 29 3b 0d 09 77 |amma(dev|ice);..w|
|00003a70| 69 6e 64 6f 77 3d 47 44 | 4f 70 65 6e 57 69 6e 64 |indow=GD|OpenWind|
|00003a80| 6f 77 31 28 64 65 76 69 | 63 65 29 3b 0d 09 53 65 |ow1(devi|ce);..Se|
|00003a90| 6e 64 42 65 68 69 6e 64 | 28 77 69 6e 64 6f 77 2c |ndBehind|(window,|
|00003aa0| 4e 55 4c 4c 29 3b 0d 09 | 4c 50 2d 3e 64 61 63 53 |NULL);..|LP->dacS|
|00003ab0| 69 7a 65 3d 47 44 44 61 | 63 53 69 7a 65 28 64 65 |ize=GDDa|cSize(de|
|00003ac0| 76 69 63 65 29 3b 09 09 | 09 2f 2f 20 54 61 6b 65 |vice);..|.// Take|
|00003ad0| 73 20 32 30 30 20 b5 73 | 2e 0d 09 63 6c 75 74 53 |s 200 .s|...clutS|
|00003ae0| 69 7a 65 3d 47 44 43 6c | 75 74 53 69 7a 65 28 64 |ize=GDCl|utSize(d|
|00003af0| 65 76 69 63 65 29 3b 09 | 0d 09 4c 50 2d 3e 56 4d |evice);.|..LP->VM|
|00003b00| 69 6e 3d 30 3b 0d 09 4c | 50 2d 3e 56 4d 61 78 3d |in=0;..L|P->VMax=|
|00003b10| 28 31 4c 3c 3c 4c 50 2d | 3e 64 61 63 53 69 7a 65 |(1L<<LP-|>dacSize|
|00003b20| 29 2d 31 3b 09 2f 2a 20 | 6d 61 78 69 6d 75 6d 20 |)-1;./* |maximum |
|00003b30| 76 61 6c 75 65 20 74 68 | 61 74 20 63 61 6e 20 62 |value th|at can b|
|00003b40| 65 20 6c 6f 61 64 65 64 | 20 69 6e 74 6f 20 44 41 |e loaded| into DA|
|00003b50| 43 20 2a 2f 0d 09 69 73 | 47 72 61 79 3d 21 54 65 |C */..is|Gray=!Te|
|00003b60| 73 74 44 65 76 69 63 65 | 41 74 74 72 69 62 75 74 |stDevice|Attribut|
|00003b70| 65 28 64 65 76 69 63 65 | 2c 67 64 44 65 76 54 79 |e(device|,gdDevTy|
|00003b80| 70 65 29 3b 0d 09 70 72 | 69 6e 74 66 28 22 54 65 |pe);..pr|intf("Te|
|00003b90| 73 74 20 73 63 72 65 65 | 6e 20 69 73 20 73 65 74 |st scree|n is set|
|00003ba0| 20 74 6f 20 25 64 20 63 | 6f 6c 6f 72 73 20 61 6e | to %d c|olors an|
|00003bb0| 64 20 25 73 20 6d 6f 64 | 65 2e 5c 6e 22 2c 63 6c |d %s mod|e.\n",cl|
|00003bc0| 75 74 53 69 7a 65 2c 63 | 6f 6c 6f 72 47 72 61 79 |utSize,c|olorGray|
|00003bd0| 5b 69 73 47 72 61 79 5d | 29 3b 0d 09 69 66 28 63 |[isGray]|);..if(c|
|00003be0| 6c 75 74 53 69 7a 65 3c | 34 29 7b 0d 09 09 66 6f |lutSize<|4){...fo|
|00003bf0| 72 28 69 3d 34 3b 69 3c | 3d 33 32 3b 69 2a 3d 32 |r(i=4;i<|=32;i*=2|
|00003c00| 29 7b 0d 09 09 09 6d 6f | 64 65 3d 48 61 73 44 65 |){....mo|de=HasDe|
|00003c10| 70 74 68 28 64 65 76 69 | 63 65 2c 69 2c 30 2c 30 |pth(devi|ce,i,0,0|
|00003c20| 29 3b 0d 09 09 09 69 66 | 28 6d 6f 64 65 21 3d 30 |);....if|(mode!=0|
|00003c30| 29 62 72 65 61 6b 3b 0d | 09 09 7d 0d 09 09 69 66 |)break;.|..}...if|
|00003c40| 28 6d 6f 64 65 3d 3d 30 | 29 50 72 69 6e 74 66 45 |(mode==0|)PrintfE|
|00003c50| 78 69 74 28 22 5c 6e 5c | 30 30 37 53 6f 72 72 79 |xit("\n\|007Sorry|
|00003c60| 2e 20 54 68 69 73 20 70 | 72 6f 67 72 61 6d 20 63 |. This p|rogram c|
|00003c70| 61 6e 6e 6f 74 20 63 61 | 6c 69 62 72 61 74 65 20 |annot ca|librate |
|00003c80| 61 20 64 69 73 70 6c 61 | 79 22 0d 09 09 09 22 77 |a displa|y"...."w|
|00003c90| 69 74 68 20 6c 65 73 73 | 20 74 68 61 6e 20 34 20 |ith less| than 4 |
|00003ca0| 63 6f 6c 6f 72 73 2f 67 | 72 61 79 73 2e 22 29 3b |colors/g|rays.");|
|00003cb0| 0d 09 09 70 72 69 6e 74 | 66 28 22 43 68 61 6e 67 |...print|f("Chang|
|00003cc0| 69 6e 67 20 73 63 72 65 | 65 6e 20 64 65 70 74 68 |ing scre|en depth|
|00003cd0| 20 74 6f 20 25 64 2d 62 | 69 74 20 70 69 78 65 6c | to %d-b|it pixel|
|00003ce0| 73 5c 6e 22 2c 69 29 3b | 0d 09 09 69 66 28 6d 6f |s\n",i);|...if(mo|
|00003cf0| 64 65 3d 3d 30 78 31 30 | 30 29 50 72 69 6e 74 66 |de==0x10|0)Printf|
|00003d00| 45 78 69 74 28 42 72 65 | 61 6b 4c 69 6e 65 73 28 |Exit(Bre|akLines(|
|00003d10| 22 53 6f 72 72 79 2c 20 | 74 68 65 20 48 61 73 44 |"Sorry, |the HasD|
|00003d20| 65 70 74 68 20 72 6f 75 | 74 69 6e 65 20 64 6f 65 |epth rou|tine doe|
|00003d30| 73 6e 27 74 20 77 6f 72 | 6b 20 70 72 6f 70 65 72 |sn't wor|k proper|
|00003d40| 6c 79 2e 20 22 0d 09 09 | 22 55 73 65 20 74 68 65 |ly. "...|"Use the|
|00003d50| 20 4d 6f 6e 69 74 6f 72 | 73 20 43 6f 6e 74 72 6f | Monitor|s Contro|
|00003d60| 6c 20 50 61 6e 65 6c 20 | 74 6f 20 73 65 74 20 74 |l Panel |to set t|
|00003d70| 68 65 20 63 6f 6c 6f 72 | 73 2f 67 72 61 79 73 20 |he color|s/grays |
|00003d80| 61 6e 64 20 74 68 65 6e | 20 72 75 6e 20 22 0d 09 |and then| run "..|
|00003d90| 09 22 43 61 6c 69 62 72 | 61 74 65 4c 75 6d 69 6e |."Calibr|ateLumin|
|00003da0| 61 6e 63 65 20 61 67 61 | 69 6e 2e 5c 6e 22 2c 57 |ance aga|in.\n",W|
|00003db0| 49 44 54 48 29 29 3b 0d | 09 09 53 65 74 44 65 70 |IDTH));.|..SetDep|
|00003dc0| 74 68 28 64 65 76 69 63 | 65 2c 6d 6f 64 65 2c 30 |th(devic|e,mode,0|
|00003dd0| 2c 30 29 3b 0d 09 09 63 | 6c 75 74 53 69 7a 65 3d |,0);...c|lutSize=|
|00003de0| 47 44 43 6c 75 74 53 69 | 7a 65 28 64 65 76 69 63 |GDClutSi|ze(devic|
|00003df0| 65 29 3b 09 0d 09 7d 0d | 09 69 66 28 69 73 47 72 |e);...}.|.if(isGr|
|00003e00| 61 79 29 7b 0d 09 09 79 | 65 73 3d 43 68 6f 6f 73 |ay){...y|es=Choos|
|00003e10| 65 28 30 2c 22 57 6f 75 | 6c 64 20 79 6f 75 20 70 |e(0,"Wou|ld you p|
|00003e20| 72 65 66 65 72 20 63 6f | 6c 6f 72 20 6d 6f 64 65 |refer co|lor mode|
|00003e30| 3f 5c 6e 22 2c 6e 6f 59 | 65 73 2c 32 29 3b 0d 09 |?\n",noY|es,2);..|
|00003e40| 09 69 66 28 79 65 73 29 | 7b 0d 09 09 09 69 66 28 |.if(yes)|{....if(|
|00003e50| 48 61 73 44 65 70 74 68 | 28 64 65 76 69 63 65 2c |HasDepth|(device,|
|00003e60| 28 2a 2a 28 2a 2a 64 65 | 76 69 63 65 29 2e 67 64 |(**(**de|vice).gd|
|00003e70| 50 4d 61 70 29 2e 70 69 | 78 65 6c 53 69 7a 65 2c |PMap).pi|xelSize,|
|00003e80| 31 2c 31 29 29 0d 09 09 | 09 09 53 65 74 44 65 70 |1,1))...|..SetDep|
|00003e90| 74 68 28 64 65 76 69 63 | 65 2c 28 2a 2a 64 65 76 |th(devic|e,(**dev|
|00003ea0| 69 63 65 29 2e 67 64 4d | 6f 64 65 2c 31 2c 31 29 |ice).gdM|ode,1,1)|
|00003eb0| 3b 0d 09 09 09 65 6c 73 | 65 20 70 72 69 6e 74 66 |;....els|e printf|
|00003ec0| 28 22 53 6f 72 72 79 2c | 20 74 68 65 72 65 20 69 |("Sorry,| there i|
|00003ed0| 73 20 6e 6f 20 63 6f 6c | 6f 72 20 6d 6f 64 65 2e |s no col|or mode.|
|00003ee0| 20 43 6f 6e 74 69 6e 75 | 69 6e 67 20 69 6e 20 67 | Continu|ing in g|
|00003ef0| 72 61 79 20 6d 6f 64 65 | 2e 5c 6e 22 29 3b 0d 09 |ray mode|.\n");..|
|00003f00| 09 7d 0d 09 09 69 73 47 | 72 61 79 3d 21 54 65 73 |.}...isG|ray=!Tes|
|00003f10| 74 44 65 76 69 63 65 41 | 74 74 72 69 62 75 74 65 |tDeviceA|ttribute|
|00003f20| 28 64 65 76 69 63 65 2c | 67 64 44 65 76 54 79 70 |(device,|gdDevTyp|
|00003f30| 65 29 3b 0d 09 7d 65 6c | 73 65 7b 0d 09 09 70 72 |e);..}el|se{...pr|
|00003f40| 69 6e 74 66 28 22 48 69 | 74 20 72 65 74 75 72 6e |intf("Hi|t return|
|00003f50| 20 77 68 65 6e 20 72 65 | 61 64 79 20 74 6f 20 63 | when re|ady to c|
|00003f60| 6f 6e 74 69 6e 75 65 2e | 5c 6e 22 29 3b 0d 09 09 |ontinue.|\n");...|
|00003f70| 67 65 74 73 28 73 74 72 | 69 6e 67 29 3b 0d 09 7d |gets(str|ing);..}|
|00003f80| 0d 09 4c 50 2d 3e 48 7a | 3d 47 44 46 72 61 6d 65 |..LP->Hz|=GDFrame|
|00003f90| 52 61 74 65 28 64 65 76 | 69 63 65 29 3b 0d 09 0d |Rate(dev|ice);...|
|00003fa0| 09 69 66 28 69 73 47 72 | 61 79 29 73 6b 69 70 52 |.if(isGr|ay)skipR|
|00003fb0| 47 42 3d 31 3b 0d 09 65 | 6c 73 65 7b 0d 09 09 70 |GB=1;..e|lse{...p|
|00003fc0| 72 69 6e 74 66 28 42 72 | 65 61 6b 4c 69 6e 65 73 |rintf(Br|eakLines|
|00003fd0| 28 22 5c 6e 54 68 65 72 | 65 20 61 72 65 20 74 77 |("\nTher|e are tw|
|00003fe0| 6f 20 6b 69 6e 64 73 20 | 6f 66 20 6d 65 61 73 75 |o kinds |of measu|
|00003ff0| 72 65 6d 65 6e 74 3a 5c | 6e 22 0d 09 09 22 31 2e |rement:\|n"..."1.|
|00004000| 20 43 6f 6d 70 75 6c 73 | 6f 72 79 20 63 61 6c 69 | Compuls|ory cali|
|00004010| 62 72 61 74 69 6f 6e 20 | 6f 66 20 74 68 65 20 28 |bration |of the (|
|00004020| 6e 6f 6e 6c 69 6e 65 61 | 72 29 20 6d 6f 6e 69 74 |nonlinea|r) monit|
|00004030| 6f 72 27 73 20 67 61 6d | 6d 61 20 66 75 6e 63 74 |or's gam|ma funct|
|00004040| 69 6f 6e 2e 20 22 0d 09 | 09 22 54 68 69 73 20 77 |ion. "..|."This w|
|00004050| 69 6c 6c 20 62 65 20 61 | 66 66 65 63 74 65 64 20 |ill be a|ffected |
|00004060| 62 79 20 79 6f 75 72 20 | 63 68 6f 69 63 65 20 6f |by your |choice o|
|00004070| 66 20 62 61 63 6b 67 72 | 6f 75 6e 64 20 6c 75 6d |f backgr|ound lum|
|00004080| 69 6e 61 6e 63 65 2e 5c | 6e 22 0d 09 09 22 32 2e |inance.\|n"..."2.|
|00004090| 20 4f 70 74 69 6f 6e 61 | 6c 20 63 61 6c 69 62 72 | Optiona|l calibr|
|000040a0| 61 74 69 6f 6e 20 6f 66 | 20 74 68 65 20 28 6c 69 |ation of| the (li|
|000040b0| 6e 65 61 72 29 20 49 53 | 52 20 56 69 64 65 6f 20 |near) IS|R Video |
|000040c0| 41 74 74 65 6e 75 61 74 | 6f 72 20 33 20 63 68 61 |Attenuat|or 3 cha|
|000040d0| 6e 6e 65 6c 20 67 61 69 | 6e 73 2e 20 22 0d 09 09 |nnel gai|ns. "...|
|000040e0| 22 54 68 69 73 20 69 73 | 20 69 6e 64 65 70 65 6e |"This is| indepen|
|000040f0| 64 65 6e 74 20 6f 66 20 | 74 68 65 20 62 61 63 6b |dent of |the back|
|00004100| 67 72 6f 75 6e 64 2e 20 | 49 74 20 74 61 6b 65 73 |ground. |It takes|
|00004110| 20 61 62 6f 75 74 20 31 | 35 20 6d 69 6e 75 74 65 | about 1|5 minute|
|00004120| 73 2e 5c 6e 5c 6e 22 2c | 57 49 44 54 48 29 29 3b |s.\n\n",|WIDTH));|
|00004130| 0d 09 09 73 6b 69 70 52 | 47 42 3d 43 68 6f 6f 73 |...skipR|GB=Choos|
|00004140| 65 28 30 2c 22 44 6f 20 | 79 6f 75 20 77 69 73 68 |e(0,"Do |you wish|
|00004150| 20 74 6f 20 73 6b 69 70 | 20 32 2e 2c 20 74 68 65 | to skip| 2., the|
|00004160| 20 6f 70 74 69 6f 6e 61 | 6c 20 74 68 72 65 65 2d | optiona|l three-|
|00004170| 63 68 61 6e 6e 65 6c 20 | 63 61 6c 69 62 72 61 74 |channel |calibrat|
|00004180| 69 6f 6e 3f 5c 6e 22 2c | 6e 6f 59 65 73 2c 32 29 |ion?\n",|noYes,2)|
|00004190| 3b 0d 09 7d 0d 09 69 66 | 28 73 6b 69 70 52 47 42 |;..}..if|(skipRGB|
|000041a0| 29 70 72 69 6e 74 66 28 | 22 53 6b 69 70 70 69 6e |)printf(|"Skippin|
|000041b0| 67 20 33 20 63 68 61 6e | 6e 65 6c 20 63 61 6c 69 |g 3 chan|nel cali|
|000041c0| 62 72 61 74 69 6f 6e 2e | 5c 6e 22 29 3b 0d 09 65 |bration.|\n");..e|
|000041d0| 6c 73 65 20 70 72 69 6e | 74 66 28 22 41 6c 6c 20 |lse prin|tf("All |
|000041e0| 33 20 63 68 61 6e 6e 65 | 6c 73 20 77 69 6c 6c 20 |3 channe|ls will |
|000041f0| 62 65 20 63 61 6c 69 62 | 72 61 74 65 64 2e 5c 6e |be calib|rated.\n|
|00004200| 22 29 3b 0d 09 0d 09 66 | 72 61 6d 65 73 3d 30 3b |");....f|rames=0;|
|00004210| 0d 09 69 66 28 61 75 74 | 6f 6d 61 74 69 63 29 7b |..if(aut|omatic){|
|00004220| 0d 09 09 66 72 61 6d 65 | 73 3d 4e 46 52 41 4d 45 |...frame|s=NFRAME|
|00004230| 3b 0d 09 09 70 72 69 6e | 74 66 28 22 54 61 6b 69 |;...prin|tf("Taki|
|00004240| 6e 67 20 70 68 6f 74 6f | 6d 65 74 65 72 20 72 65 |ng photo|meter re|
|00004250| 61 64 69 6e 67 73 20 61 | 75 74 6f 6d 61 74 69 63 |adings a|utomatic|
|00004260| 61 6c 6c 79 2e 20 22 0d | 09 09 09 22 41 73 73 75 |ally. ".|..."Assu|
|00004270| 6d 69 6e 67 20 25 2e 33 | 66 20 6d 69 6c 6c 69 56 |ming %.3|f milliV|
|00004280| 6f 6c 74 73 20 70 65 72 | 20 25 73 2e 5c 6e 22 2c |olts per| %s.\n",|
|00004290| 31 30 30 30 2e 30 2f 6c | 75 6d 69 6e 61 6e 63 65 |1000.0/l|uminance|
|000042a0| 50 65 72 56 6f 6c 74 61 | 67 65 2c 4c 50 2d 3e 75 |PerVolta|ge,LP->u|
|000042b0| 6e 69 74 73 29 3b 0d 09 | 7d 0d 09 65 6c 73 65 20 |nits);..|}..else |
|000042c0| 70 72 69 6e 74 66 28 22 | 50 6c 65 61 73 65 20 65 |printf("|Please e|
|000042d0| 6e 74 65 72 20 74 68 65 | 20 70 68 6f 74 6f 6d 65 |nter the| photome|
|000042e0| 74 65 72 20 72 65 61 64 | 69 6e 67 73 2c 69 6e 20 |ter read|ings,in |
|000042f0| 25 73 2c 20 61 73 20 70 | 72 6f 6d 70 74 65 64 2e |%s, as p|rompted.|
|00004300| 5c 6e 22 2c 4c 50 2d 3e | 75 6e 69 74 73 29 3b 20 |\n",LP->|units); |
|00004310| 0d 09 70 72 69 6e 74 66 | 28 22 5c 6e 22 29 3b 0d |..printf|("\n");.|
|00004320| 0d 09 70 72 69 6e 74 66 | 28 22 46 69 72 73 74 20 |..printf|("First |
|00004330| 6c 65 74 27 73 20 63 68 | 65 63 6b 20 74 68 65 20 |let's ch|eck the |
|00004340| 70 68 6f 74 6f 6d 65 74 | 65 72 27 73 20 67 61 69 |photomet|er's gai|
|00004350| 6e 20 73 65 74 74 69 6e | 67 2e 5c 6e 22 0d 09 09 |n settin|g.\n"...|
|00004360| 22 50 6f 69 6e 74 20 74 | 68 65 20 70 68 6f 74 6f |"Point t|he photo|
|00004370| 6d 65 74 65 72 20 61 74 | 20 74 68 65 20 73 63 72 |meter at| the scr|
|00004380| 65 65 6e 20 61 6e 64 20 | 68 69 74 20 72 65 74 75 |een and |hit retu|
|00004390| 72 6e 3a 22 29 3b 0d 09 | 67 65 74 73 28 73 74 72 |rn:");..|gets(str|
|000043a0| 69 6e 67 29 3b 0d 09 63 | 6c 75 74 53 69 7a 65 3d |ing);..c|lutSize=|
|000043b0| 47 44 43 6c 75 74 53 69 | 7a 65 28 64 65 76 69 63 |GDClutSi|ze(devic|
|000043c0| 65 29 3b 0d 09 64 6f 7b | 0d 09 09 70 72 69 6e 74 |e);..do{|...print|
|000043d0| 66 28 22 5c 72 22 29 3b | 0d 09 09 53 65 74 50 6f |f("\r");|...SetPo|
|000043e0| 72 74 28 77 69 6e 64 6f | 77 29 3b 0d 09 09 42 72 |rt(windo|w);...Br|
|000043f0| 69 6e 67 54 6f 46 72 6f | 6e 74 28 77 69 6e 64 6f |ingToFro|nt(windo|
|00004400| 77 29 3b 0d 09 09 46 69 | 6c 6c 52 65 63 74 28 26 |w);...Fi|llRect(&|
|00004410| 77 69 6e 64 6f 77 2d 3e | 70 6f 72 74 52 65 63 74 |window->|portRect|
|00004420| 2c 28 43 6f 6e 73 74 50 | 61 74 74 65 72 6e 50 61 |,(ConstP|atternPa|
|00004430| 72 61 6d 29 26 71 64 2e | 62 6c 61 63 6b 29 3b 0d |ram)&qd.|black);.|
|00004440| 09 09 64 61 72 6b 4c 75 | 6d 69 6e 61 6e 63 65 3d |..darkLu|minance=|
|00004450| 47 65 74 41 4c 75 6d 69 | 6e 61 6e 63 65 28 4c 50 |GetALumi|nance(LP|
|00004460| 2c 64 65 76 69 63 65 2c | 66 72 61 6d 65 73 2c 6c |,device,|frames,l|
|00004470| 75 6d 69 6e 61 6e 63 65 | 50 65 72 56 6f 6c 74 61 |uminance|PerVolta|
|00004480| 67 65 2c 63 6c 75 74 53 | 69 7a 65 2d 31 2c 30 2c |ge,clutS|ize-1,0,|
|00004490| 30 2c 30 29 3b 0d 09 09 | 46 69 6c 6c 52 65 63 74 |0,0);...|FillRect|
|000044a0| 28 26 77 69 6e 64 6f 77 | 2d 3e 70 6f 72 74 52 65 |(&window|->portRe|
|000044b0| 63 74 2c 28 43 6f 6e 73 | 74 50 61 74 74 65 72 6e |ct,(Cons|tPattern|
|000044c0| 50 61 72 61 6d 29 26 71 | 64 2e 77 68 69 74 65 29 |Param)&q|d.white)|
|000044d0| 3b 0d 09 09 6c 75 6d 69 | 6e 61 6e 63 65 3d 47 65 |;...lumi|nance=Ge|
|000044e0| 74 41 4c 75 6d 69 6e 61 | 6e 63 65 28 4c 50 2c 64 |tALumina|nce(LP,d|
|000044f0| 65 76 69 63 65 2c 66 72 | 61 6d 65 73 2c 6c 75 6d |evice,fr|ames,lum|
|00004500| 69 6e 61 6e 63 65 50 65 | 72 56 6f 6c 74 61 67 65 |inancePe|rVoltage|
|00004510| 2c 30 2c 4c 50 2d 3e 56 | 4d 61 78 2c 4c 50 2d 3e |,0,LP->V|Max,LP->|
|00004520| 56 4d 61 78 2c 4c 50 2d | 3e 56 4d 61 78 29 3b 0d |VMax,LP-|>VMax);.|
|00004530| 09 09 6c 75 6d 69 6e 61 | 6e 63 65 2d 3d 64 61 72 |..lumina|nce-=dar|
|00004540| 6b 4c 75 6d 69 6e 61 6e | 63 65 3b 0d 09 09 53 65 |kLuminan|ce;...Se|
|00004550| 6e 64 42 65 68 69 6e 64 | 28 77 69 6e 64 6f 77 2c |ndBehind|(window,|
|00004560| 4e 55 4c 4c 29 3b 0d 09 | 09 70 72 69 6e 74 66 28 |NULL);..|.printf(|
|00004570| 22 5c 72 57 68 69 74 65 | 20 73 65 65 6d 73 20 74 |"\rWhite| seems t|
|00004580| 6f 20 62 65 20 25 2e 31 | 66 20 25 73 20 62 72 69 |o be %.1|f %s bri|
|00004590| 67 68 74 65 72 20 74 68 | 61 6e 20 62 6c 61 63 6b |ghter th|an black|
|000045a0| 2e 5c 6e 22 2c 6c 75 6d | 69 6e 61 6e 63 65 2c 4c |.\n",lum|inance,L|
|000045b0| 50 2d 3e 75 6e 69 74 73 | 29 3b 0d 09 09 79 65 73 |P->units|);...yes|
|000045c0| 3d 43 68 6f 6f 73 65 28 | 30 2c 22 44 6f 20 79 6f |=Choose(|0,"Do yo|
|000045d0| 75 20 77 61 6e 74 20 74 | 6f 20 74 72 79 20 74 68 |u want t|o try th|
|000045e0| 61 74 20 61 67 61 69 6e | 3f 22 2c 6e 6f 59 65 73 |at again|?",noYes|
|000045f0| 2c 32 29 3b 0d 09 7d 77 | 68 69 6c 65 28 79 65 73 |,2);..}w|hile(yes|
|00004600| 29 3b 0d 09 70 72 69 6e | 74 66 28 22 5c 6e 22 29 |);..prin|tf("\n")|
|00004610| 3b 0d 0d 09 70 72 69 6e | 74 66 28 22 50 6c 65 61 |;...prin|tf("Plea|
|00004620| 73 65 20 6f 63 63 6c 75 | 64 65 20 74 68 65 20 70 |se occlu|de the p|
|00004630| 68 6f 74 6f 6d 65 74 65 | 72 20 73 6f 20 74 68 61 |hotomete|r so tha|
|00004640| 74 20 49 20 63 61 6e 20 | 72 65 61 64 20 74 68 65 |t I can |read the|
|00004650| 20 64 61 72 6b 20 6c 65 | 76 65 6c 2e 5c 6e 22 0d | dark le|vel.\n".|
|00004660| 09 22 48 69 74 20 72 65 | 74 75 72 6e 20 77 68 65 |."Hit re|turn whe|
|00004670| 6e 20 72 65 61 64 79 3a | 22 29 3b 0d 09 67 65 74 |n ready:|");..get|
|00004680| 73 28 73 74 72 69 6e 67 | 29 3b 0d 09 64 61 72 6b |s(string|);..dark|
|00004690| 4c 75 6d 69 6e 61 6e 63 | 65 3d 47 65 74 41 4c 75 |Luminanc|e=GetALu|
|000046a0| 6d 69 6e 61 6e 63 65 28 | 4c 50 2c 64 65 76 69 63 |minance(|LP,devic|
|000046b0| 65 2c 66 72 61 6d 65 73 | 2c 6c 75 6d 69 6e 61 6e |e,frames|,luminan|
|000046c0| 63 65 50 65 72 56 6f 6c | 74 61 67 65 2c 30 2c 4c |cePerVol|tage,0,L|
|000046d0| 50 2d 3e 56 4d 61 78 2c | 4c 50 2d 3e 56 4d 61 78 |P->VMax,|LP->VMax|
|000046e0| 2c 4c 50 2d 3e 56 4d 61 | 78 29 3b 0d 09 70 72 69 |,LP->VMa|x);..pri|
|000046f0| 6e 74 66 28 22 54 68 65 | 20 64 61 72 6b 20 6c 65 |ntf("The| dark le|
|00004700| 76 65 6c 20 6f 66 20 25 | 2e 32 66 20 63 64 2f 6d |vel of %|.2f cd/m|
|00004710| 5e 32 20 77 69 6c 6c 20 | 62 65 20 73 75 62 74 72 |^2 will |be subtr|
|00004720| 61 63 74 65 64 20 66 72 | 6f 6d 20 61 6c 6c 20 72 |acted fr|om all r|
|00004730| 65 61 64 69 6e 67 73 5c | 6e 22 0d 09 09 2c 64 61 |eadings\|n"...,da|
|00004740| 72 6b 4c 75 6d 69 6e 61 | 6e 63 65 29 3b 0d 09 0d |rkLumina|nce);...|
|00004750| 09 74 65 73 74 53 69 7a | 65 3d 31 36 30 3b 0d 09 |.testSiz|e=160;..|
|00004760| 70 72 69 6e 74 66 28 22 | 45 6e 74 65 72 2c 20 69 |printf("|Enter, i|
|00004770| 6e 20 70 69 78 65 6c 73 | 2c 20 74 68 65 20 64 69 |n pixels|, the di|
|00004780| 61 6d 65 74 65 72 20 6f | 66 20 74 68 65 20 74 65 |ameter o|f the te|
|00004790| 73 74 20 70 61 74 63 68 | 20 28 25 64 29 3a 22 2c |st patch| (%d):",|
|000047a0| 74 65 73 74 53 69 7a 65 | 29 3b 0d 09 67 65 74 73 |testSize|);..gets|
|000047b0| 28 73 74 72 69 6e 67 29 | 3b 0d 09 73 73 63 61 6e |(string)|;..sscan|
|000047c0| 66 28 28 63 68 61 72 20 | 2a 29 73 74 72 69 6e 67 |f((char |*)string|
|000047d0| 2c 22 25 64 22 2c 26 74 | 65 73 74 53 69 7a 65 29 |,"%d",&t|estSize)|
|000047e0| 3b 0d 0d 09 2f 2a 20 64 | 72 61 77 20 63 69 72 63 |;.../* d|raw circ|
|000047f0| 6c 65 20 66 6f 72 20 70 | 6c 61 63 65 6d 65 6e 74 |le for p|lacement|
|00004800| 20 6f 66 20 70 68 6f 74 | 6f 63 65 6c 6c 20 2a 2f | of phot|ocell */|
|00004810| 0d 09 53 65 74 50 6f 72 | 74 28 77 69 6e 64 6f 77 |..SetPor|t(window|
|00004820| 29 3b 0d 09 72 65 63 74 | 3d 77 69 6e 64 6f 77 2d |);..rect|=window-|
|00004830| 3e 70 6f 72 74 52 65 63 | 74 3b 0d 09 49 6e 73 65 |>portRec|t;..Inse|
|00004840| 74 52 65 63 74 28 26 72 | 65 63 74 2c 28 72 65 63 |tRect(&r|ect,(rec|
|00004850| 74 2e 72 69 67 68 74 2d | 74 65 73 74 53 69 7a 65 |t.right-|testSize|
|00004860| 29 2f 32 2c 28 72 65 63 | 74 2e 62 6f 74 74 6f 6d |)/2,(rec|t.bottom|
|00004870| 2d 74 65 73 74 53 69 7a | 65 29 2f 32 29 3b 0d 09 |-testSiz|e)/2);..|
|00004880| 50 6d 46 6f 72 65 43 6f | 6c 6f 72 28 32 35 35 29 |PmForeCo|lor(255)|
|00004890| 3b 0d 09 50 65 6e 53 69 | 7a 65 28 31 30 2c 31 30 |;..PenSi|ze(10,10|
|000048a0| 29 3b 0d 09 46 72 61 6d | 65 4f 76 61 6c 28 26 72 |);..Fram|eOval(&r|
|000048b0| 65 63 74 29 3b 0d 09 53 | 65 74 50 6f 72 74 28 6f |ect);..S|etPort(o|
|000048c0| 6c 64 57 69 6e 64 6f 77 | 29 3b 0d 09 0d 09 70 72 |ldWindow|);....pr|
|000048d0| 69 6e 74 66 28 22 50 6c | 65 61 73 65 20 72 65 6d |intf("Pl|ease rem|
|000048e0| 6f 76 65 20 74 68 65 20 | 6f 63 63 6c 75 64 65 72 |ove the |occluder|
|000048f0| 2e 20 5c 6e 22 29 3b 0d | 09 70 72 69 6e 74 66 28 |. \n");.|.printf(|
|00004900| 22 50 6c 61 63 65 20 79 | 6f 75 72 20 70 68 6f 74 |"Place y|our phot|
|00004910| 6f 6d 65 74 65 72 20 73 | 6f 20 61 73 20 74 6f 20 |ometer s|o as to |
|00004920| 72 65 61 64 20 74 68 65 | 20 6c 75 6d 69 6e 61 6e |read the| luminan|
|00004930| 63 65 20 6f 66 20 74 68 | 65 20 22 0d 09 09 22 63 |ce of th|e "..."c|
|00004940| 65 6e 74 65 72 20 6f 66 | 20 74 68 65 20 74 65 73 |enter of| the tes|
|00004950| 74 20 73 63 72 65 65 6e | 2e 5c 6e 22 29 3b 20 0d |t screen|.\n"); .|
|00004960| 0d 09 69 66 28 73 6b 69 | 70 52 47 42 20 7c 7c 20 |..if(ski|pRGB || |
|00004970| 21 61 75 74 6f 6d 61 74 | 69 63 29 63 79 63 6c 65 |!automat|ic)cycle|
|00004980| 73 3d 31 3b 0d 09 65 6c | 73 65 20 63 79 63 6c 65 |s=1;..el|se cycle|
|00004990| 73 3d 34 3b 0d 09 70 72 | 69 6e 74 66 28 22 54 68 |s=4;..pr|intf("Th|
|000049a0| 65 6e 20 65 6e 74 65 72 | 20 6e 75 6d 62 65 72 20 |en enter| number |
|000049b0| 6f 66 20 74 69 6d 65 73 | 20 79 6f 75 20 77 69 73 |of times| you wis|
|000049c0| 68 20 74 6f 20 72 65 70 | 65 61 74 20 74 68 65 20 |h to rep|eat the |
|000049d0| 77 68 6f 6c 65 20 63 79 | 63 6c 65 20 6f 66 20 6d |whole cy|cle of m|
|000049e0| 65 61 73 75 72 65 6d 65 | 6e 74 2e 20 28 25 64 29 |easureme|nt. (%d)|
|000049f0| 3a 22 0d 09 09 2c 63 79 | 63 6c 65 73 29 3b 0d 09 |:"...,cy|cles);..|
|00004a00| 67 65 74 73 28 28 63 68 | 61 72 20 2a 29 73 74 72 |gets((ch|ar *)str|
|00004a10| 69 6e 67 29 3b 0d 09 73 | 73 63 61 6e 66 28 28 63 |ing);..s|scanf((c|
|00004a20| 68 61 72 20 2a 29 73 74 | 72 69 6e 67 2c 22 25 64 |har *)st|ring,"%d|
|00004a30| 22 2c 26 63 79 63 6c 65 | 73 29 3b 0d 09 69 66 28 |",&cycle|s);..if(|
|00004a40| 63 79 63 6c 65 73 3c 3d | 30 29 72 65 74 75 72 6e |cycles<=|0)return|
|00004a50| 3b 0d 0d 09 53 65 74 50 | 6f 72 74 28 77 69 6e 64 |;...SetP|ort(wind|
|00004a60| 6f 77 29 3b 0d 09 42 72 | 69 6e 67 54 6f 46 72 6f |ow);..Br|ingToFro|
|00004a70| 6e 74 28 77 69 6e 64 6f | 77 29 3b 0d 09 46 69 6c |nt(windo|w);..Fil|
|00004a80| 6c 52 65 63 74 28 26 77 | 69 6e 64 6f 77 2d 3e 70 |lRect(&w|indow->p|
|00004a90| 6f 72 74 52 65 63 74 2c | 28 43 6f 6e 73 74 50 61 |ortRect,|(ConstPa|
|00004aa0| 74 74 65 72 6e 50 61 72 | 61 6d 29 26 71 64 2e 67 |tternPar|am)&qd.g|
|00004ab0| 72 61 79 29 3b 0d 09 6c | 75 6d 69 6e 61 6e 63 65 |ray);..l|uminance|
|00004ac0| 3d 47 65 74 41 4c 75 6d | 69 6e 61 6e 63 65 28 4c |=GetALum|inance(L|
|00004ad0| 50 2c 64 65 76 69 63 65 | 2c 66 72 61 6d 65 73 2c |P,device|,frames,|
|00004ae0| 6c 75 6d 69 6e 61 6e 63 | 65 50 65 72 56 6f 6c 74 |luminanc|ePerVolt|
|00004af0| 61 67 65 2c 30 2c 4c 50 | 2d 3e 56 4d 61 78 2c 4c |age,0,LP|->VMax,L|
|00004b00| 50 2d 3e 56 4d 61 78 2c | 4c 50 2d 3e 56 4d 61 78 |P->VMax,|LP->VMax|
|00004b10| 29 3b 0d 09 6c 75 6d 69 | 6e 61 6e 63 65 2d 3d 64 |);..lumi|nance-=d|
|00004b20| 61 72 6b 4c 75 6d 69 6e | 61 6e 63 65 3b 0d 09 70 |arkLumin|ance;..p|
|00004b30| 72 69 6e 74 66 28 22 35 | 30 25 25 20 64 69 74 68 |rintf("5|0%% dith|
|00004b40| 65 72 65 64 20 67 72 61 | 79 20 69 73 20 25 2e 31 |ered gra|y is %.1|
|00004b50| 66 20 25 73 5c 6e 22 2c | 6c 75 6d 69 6e 61 6e 63 |f %s\n",|luminanc|
|00004b60| 65 2c 4c 50 2d 3e 75 6e | 69 74 73 29 3b 0d 09 46 |e,LP->un|its);..F|
|00004b70| 69 6c 6c 52 65 63 74 28 | 26 77 69 6e 64 6f 77 2d |illRect(|&window-|
|00004b80| 3e 70 6f 72 74 52 65 63 | 74 2c 28 43 6f 6e 73 74 |>portRec|t,(Const|
|00004b90| 50 61 74 74 65 72 6e 50 | 61 72 61 6d 29 26 71 64 |PatternP|aram)&qd|
|00004ba0| 2e 77 68 69 74 65 29 3b | 0d 09 6c 75 6d 69 6e 61 |.white);|..lumina|
|00004bb0| 6e 63 65 3d 47 65 74 41 | 4c 75 6d 69 6e 61 6e 63 |nce=GetA|Luminanc|
|00004bc0| 65 28 4c 50 2c 64 65 76 | 69 63 65 2c 66 72 61 6d |e(LP,dev|ice,fram|
|00004bd0| 65 73 2c 6c 75 6d 69 6e | 61 6e 63 65 50 65 72 56 |es,lumin|ancePerV|
|00004be0| 6f 6c 74 61 67 65 2c 30 | 2c 4c 50 2d 3e 56 4d 61 |oltage,0|,LP->VMa|
|00004bf0| 78 2c 4c 50 2d 3e 56 4d | 61 78 2c 4c 50 2d 3e 56 |x,LP->VM|ax,LP->V|
|00004c00| 4d 61 78 29 3b 0d 09 6c | 75 6d 69 6e 61 6e 63 65 |Max);..l|uminance|
|00004c10| 2d 3d 64 61 72 6b 4c 75 | 6d 69 6e 61 6e 63 65 3b |-=darkLu|minance;|
|00004c20| 0d 09 70 72 69 6e 74 66 | 28 22 57 68 69 74 65 20 |..printf|("White |
|00004c30| 69 73 20 25 2e 31 66 20 | 25 73 5c 6e 22 2c 6c 75 |is %.1f |%s\n",lu|
|00004c40| 6d 69 6e 61 6e 63 65 2c | 4c 50 2d 3e 75 6e 69 74 |minance,|LP->unit|
|00004c50| 73 29 3b 0d 09 46 69 6c | 6c 52 65 63 74 28 26 77 |s);..Fil|lRect(&w|
|00004c60| 69 6e 64 6f 77 2d 3e 70 | 6f 72 74 52 65 63 74 2c |indow->p|ortRect,|
|00004c70| 28 43 6f 6e 73 74 50 61 | 74 74 65 72 6e 50 61 72 |(ConstPa|tternPar|
|00004c80| 61 6d 29 26 71 64 2e 62 | 6c 61 63 6b 29 3b 0d 09 |am)&qd.b|lack);..|
|00004c90| 6c 75 6d 69 6e 61 6e 63 | 65 3d 47 65 74 41 4c 75 |luminanc|e=GetALu|
|00004ca0| 6d 69 6e 61 6e 63 65 28 | 4c 50 2c 64 65 76 69 63 |minance(|LP,devic|
|00004cb0| 65 2c 66 72 61 6d 65 73 | 2c 6c 75 6d 69 6e 61 6e |e,frames|,luminan|
|00004cc0| 63 65 50 65 72 56 6f 6c | 74 61 67 65 2c 30 2c 4c |cePerVol|tage,0,L|
|00004cd0| 50 2d 3e 56 4d 61 78 2c | 4c 50 2d 3e 56 4d 61 78 |P->VMax,|LP->VMax|
|00004ce0| 2c 4c 50 2d 3e 56 4d 61 | 78 29 3b 0d 09 6c 75 6d |,LP->VMa|x);..lum|
|00004cf0| 69 6e 61 6e 63 65 2d 3d | 64 61 72 6b 4c 75 6d 69 |inance-=|darkLumi|
|00004d00| 6e 61 6e 63 65 3b 0d 09 | 70 72 69 6e 74 66 28 22 |nance;..|printf("|
|00004d10| 42 6c 61 63 6b 20 69 73 | 20 25 2e 31 66 20 25 73 |Black is| %.1f %s|
|00004d20| 5c 6e 22 2c 6c 75 6d 69 | 6e 61 6e 63 65 2c 4c 50 |\n",lumi|nance,LP|
|00004d30| 2d 3e 75 6e 69 74 73 29 | 3b 0d 09 53 65 6e 64 42 |->units)|;..SendB|
|00004d40| 65 68 69 6e 64 28 77 69 | 6e 64 6f 77 2c 4e 55 4c |ehind(wi|ndow,NUL|
|00004d50| 4c 29 3b 0d 0d 09 73 70 | 72 69 6e 74 66 28 73 74 |L);...sp|rintf(st|
|00004d60| 72 69 6e 67 2c 22 49 74 | 20 69 73 20 65 73 73 65 |ring,"It| is esse|
|00004d70| 6e 74 69 61 6c 20 74 68 | 61 74 20 74 68 65 20 63 |ntial th|at the c|
|00004d80| 61 6c 69 62 72 61 74 69 | 6f 6e 20 62 65 20 6d 61 |alibrati|on be ma|
|00004d90| 64 65 20 77 69 74 68 20 | 74 68 65 20 73 61 6d 65 |de with |the same|
|00004da0| 20 62 61 63 6b 67 72 6f | 75 6e 64 20 22 0d 09 22 | backgro|und ".."|
|00004db0| 6c 75 6d 69 6e 61 6e 63 | 65 20 61 73 20 77 69 6c |luminanc|e as wil|
|00004dc0| 6c 20 75 6c 74 69 6d 61 | 74 65 6c 79 20 62 65 20 |l ultima|tely be |
|00004dd0| 75 73 65 64 20 69 6e 20 | 79 6f 75 72 20 65 78 70 |used in |your exp|
|00004de0| 65 72 69 6d 65 6e 74 73 | 2e 20 59 6f 75 20 6d 61 |eriments|. You ma|
|00004df0| 79 20 73 70 65 63 69 66 | 79 20 74 68 65 20 22 0d |y specif|y the ".|
|00004e00| 09 22 62 61 63 6b 67 72 | 6f 75 6e 64 20 6c 75 6d |."backgr|ound lum|
|00004e10| 69 6e 61 6e 63 65 20 65 | 69 74 68 65 72 20 61 73 |inance e|ither as|
|00004e20| 20 61 20 6c 75 6d 69 6e | 61 6e 63 65 20 69 6e 20 | a lumin|ance in |
|00004e30| 25 73 2c 20 6f 72 20 61 | 73 20 61 20 63 6f 72 72 |%s, or a|s a corr|
|00004e40| 65 73 70 6f 6e 64 69 6e | 67 20 22 0d 09 22 44 41 |espondin|g ".."DA|
|00004e50| 43 20 76 61 6c 75 65 20 | 28 30 2e 2e 25 64 29 2e |C value |(0..%d).|
|00004e60| 5c 6e 22 2c 4c 50 2d 3e | 75 6e 69 74 73 2c 28 69 |\n",LP->|units,(i|
|00004e70| 6e 74 29 4c 50 2d 3e 56 | 4d 61 78 29 3b 0d 09 70 |nt)LP->V|Max);..p|
|00004e80| 72 69 6e 74 66 28 22 25 | 73 22 2c 42 72 65 61 6b |rintf("%|s",Break|
|00004e90| 4c 69 6e 65 73 28 73 74 | 72 69 6e 67 2c 57 49 44 |Lines(st|ring,WID|
|00004ea0| 54 48 29 29 3b 0d 09 79 | 65 73 3d 43 68 6f 6f 73 |TH));..y|es=Choos|
|00004eb0| 65 28 31 2c 22 44 6f 20 | 79 6f 75 20 77 69 73 68 |e(1,"Do |you wish|
|00004ec0| 20 74 6f 20 65 6e 74 65 | 72 20 61 20 6c 75 6d 69 | to ente|r a lumi|
|00004ed0| 6e 61 6e 63 65 3f 5c 6e | 22 2c 6e 6f 59 65 73 2c |nance?\n|",noYes,|
|00004ee0| 32 29 3b 0d 09 69 66 28 | 79 65 73 29 7b 0d 09 09 |2);..if(|yes){...|
|00004ef0| 70 72 69 6e 74 66 28 22 | 45 6e 74 65 72 20 74 68 |printf("|Enter th|
|00004f00| 65 20 64 65 73 69 72 65 | 64 20 62 61 63 6b 67 72 |e desire|d backgr|
|00004f10| 6f 75 6e 64 20 6c 75 6d | 69 6e 61 6e 63 65 20 69 |ound lum|inance i|
|00004f20| 6e 20 25 73 20 28 25 66 | 29 3a 22 2c 4c 50 2d 3e |n %s (%f|):",LP->|
|00004f30| 75 6e 69 74 73 2c 4c 50 | 2d 3e 4c 42 61 63 6b 67 |units,LP|->LBackg|
|00004f40| 72 6f 75 6e 64 29 3b 0d | 09 09 67 65 74 73 28 73 |round);.|..gets(s|
|00004f50| 74 72 69 6e 67 29 3b 0d | 09 09 73 73 63 61 6e 66 |tring);.|..sscanf|
|00004f60| 28 73 74 72 69 6e 67 2c | 22 25 6c 66 22 2c 26 4c |(string,|"%lf",&L|
|00004f70| 50 2d 3e 4c 42 61 63 6b | 67 72 6f 75 6e 64 29 3b |P->LBack|ground);|
|00004f80| 0d 09 09 70 72 69 6e 74 | 66 28 22 4e 6f 77 20 68 |...print|f("Now h|
|00004f90| 75 6e 74 69 6e 67 20 66 | 6f 72 20 74 68 65 20 44 |unting f|or the D|
|00004fa0| 41 43 20 76 61 6c 75 65 | 20 2e 20 2e 20 2e 5c 6e |AC value| . . .\n|
|00004fb0| 22 29 3b 0d 09 09 4c 54 | 6f 56 48 75 6e 74 28 4c |");...LT|oVHunt(L|
|00004fc0| 50 2c 64 65 76 69 63 65 | 2c 28 43 57 69 6e 64 6f |P,device|,(CWindo|
|00004fd0| 77 50 74 72 29 77 69 6e | 64 6f 77 2c 6c 75 6d 69 |wPtr)win|dow,lumi|
|00004fe0| 6e 61 6e 63 65 50 65 72 | 56 6f 6c 74 61 67 65 2c |nancePer|Voltage,|
|00004ff0| 66 72 61 6d 65 73 2c 64 | 61 72 6b 4c 75 6d 69 6e |frames,d|arkLumin|
|00005000| 61 6e 63 65 29 3b 0d 09 | 09 70 72 69 6e 74 66 28 |ance);..|.printf(|
|00005010| 22 57 69 6c 6c 20 75 73 | 65 20 74 68 65 20 6e 65 |"Will us|e the ne|
|00005020| 61 72 65 73 74 20 44 41 | 43 20 76 61 6c 75 65 2c |arest DA|C value,|
|00005030| 20 77 68 69 63 68 20 69 | 73 20 25 68 64 5c 6e 22 | which i|s %hd\n"|
|00005040| 2c 4c 50 2d 3e 56 42 61 | 63 6b 67 72 6f 75 6e 64 |,LP->VBa|ckground|
|00005050| 29 3b 0d 09 7d 65 6c 73 | 65 7b 0d 09 09 70 72 69 |);..}els|e{...pri|
|00005060| 6e 74 66 28 22 45 6e 74 | 65 72 20 74 68 65 20 44 |ntf("Ent|er the D|
|00005070| 41 43 20 76 61 6c 75 65 | 20 66 6f 72 20 74 68 65 |AC value| for the|
|00005080| 20 62 61 63 6b 67 72 6f | 75 6e 64 20 28 25 68 64 | backgro|und (%hd|
|00005090| 29 3a 22 2c 4c 50 2d 3e | 56 42 61 63 6b 67 72 6f |):",LP->|VBackgro|
|000050a0| 75 6e 64 29 3b 0d 09 09 | 67 65 74 73 28 73 74 72 |und);...|gets(str|
|000050b0| 69 6e 67 29 3b 0d 09 09 | 73 73 63 61 6e 66 28 28 |ing);...|sscanf((|
|000050c0| 63 68 61 72 20 2a 29 73 | 74 72 69 6e 67 2c 22 25 |char *)s|tring,"%|
|000050d0| 68 64 22 2c 26 4c 50 2d | 3e 56 42 61 63 6b 67 72 |hd",&LP-|>VBackgr|
|000050e0| 6f 75 6e 64 29 3b 0d 09 | 7d 0d 09 4c 50 2d 3e 74 |ound);..|}..LP->t|
|000050f0| 61 62 6c 65 5b 32 5d 2e | 72 67 62 2e 72 65 64 3d |able[2].|rgb.red=|
|00005100| 4c 50 2d 3e 74 61 62 6c | 65 5b 32 5d 2e 72 67 62 |LP->tabl|e[2].rgb|
|00005110| 2e 67 72 65 65 6e 3d 4c | 50 2d 3e 74 61 62 6c 65 |.green=L|P->table|
|00005120| 5b 32 5d 2e 72 67 62 2e | 62 6c 75 65 3d 0d 09 09 |[2].rgb.|blue=...|
|00005130| 4c 50 2d 3e 56 42 61 63 | 6b 67 72 6f 75 6e 64 3c |LP->VBac|kground<|
|00005140| 3c 4c 50 2d 3e 6c 65 66 | 74 53 68 69 66 74 3b 0d |<LP->lef|tShift;.|
|00005150| 09 4c 6f 61 64 4c 75 6d | 69 6e 61 6e 63 65 73 28 |.LoadLum|inances(|
|00005160| 64 65 76 69 63 65 2c 4c | 50 2c 32 2c 32 29 3b 0d |device,L|P,2,2);.|
|00005170| 09 53 65 74 50 6f 72 74 | 28 77 69 6e 64 6f 77 29 |.SetPort|(window)|
|00005180| 3b 0d 09 42 72 69 6e 67 | 54 6f 46 72 6f 6e 74 28 |;..Bring|ToFront(|
|00005190| 77 69 6e 64 6f 77 29 3b | 0d 09 50 6d 42 61 63 6b |window);|..PmBack|
|000051a0| 43 6f 6c 6f 72 28 32 29 | 3b 0d 09 45 72 61 73 65 |Color(2)|;..Erase|
|000051b0| 52 65 63 74 28 26 77 69 | 6e 64 6f 77 2d 3e 70 6f |Rect(&wi|ndow->po|
|000051c0| 72 74 52 65 63 74 29 3b | 0d 09 6c 75 6d 69 6e 61 |rtRect);|..lumina|
|000051d0| 6e 63 65 3d 47 65 74 41 | 4c 75 6d 69 6e 61 6e 63 |nce=GetA|Luminanc|
|000051e0| 65 28 4c 50 2c 64 65 76 | 69 63 65 2c 66 72 61 6d |e(LP,dev|ice,fram|
|000051f0| 65 73 2c 6c 75 6d 69 6e | 61 6e 63 65 50 65 72 56 |es,lumin|ancePerV|
|00005200| 6f 6c 74 61 67 65 2c 30 | 2c 4c 50 2d 3e 56 4d 61 |oltage,0|,LP->VMa|
|00005210| 78 2c 4c 50 2d 3e 56 4d | 61 78 2c 4c 50 2d 3e 56 |x,LP->VM|ax,LP->V|
|00005220| 4d 61 78 29 3b 0d 09 6c | 75 6d 69 6e 61 6e 63 65 |Max);..l|uminance|
|00005230| 2d 3d 64 61 72 6b 4c 75 | 6d 69 6e 61 6e 63 65 3b |-=darkLu|minance;|
|00005240| 0d 09 53 65 6e 64 42 65 | 68 69 6e 64 28 77 69 6e |..SendBe|hind(win|
|00005250| 64 6f 77 2c 4e 55 4c 4c | 29 3b 0d 09 53 65 74 50 |dow,NULL|);..SetP|
|00005260| 6f 72 74 28 6f 6c 64 57 | 69 6e 64 6f 77 29 3b 0d |ort(oldW|indow);.|
|00005270| 09 70 72 69 6e 74 66 28 | 22 59 6f 75 72 20 62 61 |.printf(|"Your ba|
|00005280| 63 6b 67 72 6f 75 6e 64 | 20 6c 75 6d 69 6e 61 6e |ckground| luminan|
|00005290| 63 65 20 69 73 20 25 2e | 33 66 20 25 73 5c 6e 22 |ce is %.|3f %s\n"|
|000052a0| 2c 6c 75 6d 69 6e 61 6e | 63 65 2c 4c 50 2d 3e 75 |,luminan|ce,LP->u|
|000052b0| 6e 69 74 73 29 3b 0d 0d | 09 2f 2a 20 70 6c 61 6e |nits);..|./* plan|
|000052c0| 20 74 68 65 20 6c 75 6d | 69 6e 61 6e 63 65 20 61 | the lum|inance a|
|000052d0| 6e 64 20 67 61 69 6e 20 | 6d 65 61 73 75 72 65 6d |nd gain |measurem|
|000052e0| 65 6e 74 73 20 2a 2f 0d | 09 69 66 28 73 6b 69 70 |ents */.|.if(skip|
|000052f0| 52 47 42 29 6e 4c 72 67 | 62 3d 30 3b 0d 09 72 65 |RGB)nLrg|b=0;..re|
|00005300| 61 64 54 6f 74 61 6c 3d | 63 79 63 6c 65 73 2a 28 |adTotal=|cycles*(|
|00005310| 52 4f 55 4e 44 5f 4c 55 | 4d 49 4e 41 4e 43 45 53 |ROUND_LU|MINANCES|
|00005320| 2b 33 2a 6e 4c 72 67 62 | 29 3b 0d 09 70 72 69 6e |+3*nLrgb|);..prin|
|00005330| 74 66 28 22 4e 6f 77 20 | 74 61 6b 69 6e 67 20 25 |tf("Now |taking %|
|00005340| 64 20 72 65 61 64 69 6e | 67 73 20 2e 20 2e 20 2e |d readin|gs . . .|
|00005350| 5c 6e 22 2c 72 65 61 64 | 54 6f 74 61 6c 29 3b 0d |\n",read|Total);.|
|00005360| 09 66 6f 72 20 28 69 3d | 30 3b 69 3c 6e 4c 3b 69 |.for (i=|0;i<nL;i|
|00005370| 2b 2b 29 20 4c 5b 69 5d | 3d 30 2e 30 3b 0d 09 6b |++) L[i]|=0.0;..k|
|00005380| 3d 30 3b 0d 09 66 6f 72 | 20 28 69 3d 30 3b 69 3c |=0;..for| (i=0;i<|
|00005390| 6e 4c 3b 69 2b 2b 29 7b | 0d 09 09 56 5b 69 5d 3d |nL;i++){|...V[i]=|
|000053a0| 6b 3b 0d 09 09 69 66 28 | 6b 3d 3d 4c 50 2d 3e 56 |k;...if(|k==LP->V|
|000053b0| 4d 61 78 29 20 7b 0d 09 | 09 09 69 66 28 69 2b 31 |Max) {..|..if(i+1|
|000053c0| 3c 6e 4c 29 20 56 5b 2b | 2b 69 5d 3d 6b 3b 09 2f |<nL) V[+|+i]=k;./|
|000053d0| 2a 20 70 75 74 20 74 77 | 6f 20 70 6f 69 6e 74 73 |* put tw|o points|
|000053e0| 20 61 74 20 56 4d 61 78 | 2c 20 62 65 63 61 75 73 | at VMax|, becaus|
|000053f0| 65 20 69 74 27 73 20 69 | 6d 70 6f 72 74 61 6e 74 |e it's i|mportant|
|00005400| 20 2a 2f 0d 09 09 09 6e | 4c 3d 69 2b 31 3b 0d 09 | */....n|L=i+1;..|
|00005410| 09 09 62 72 65 61 6b 3b | 0d 09 09 7d 0d 09 09 6b |..break;|...}...k|
|00005420| 20 2b 3d 20 28 4c 50 2d | 3e 56 4d 61 78 2b 31 29 | += (LP-|>VMax+1)|
|00005430| 2f 28 6e 4c 2d 32 29 3b | 0d 09 09 69 66 28 6b 3e |/(nL-2);|...if(k>|
|00005440| 4c 50 2d 3e 56 4d 61 78 | 29 6b 3d 4c 50 2d 3e 56 |LP->VMax|)k=LP->V|
|00005450| 4d 61 78 3b 0d 09 7d 0d | 09 66 6f 72 20 28 6b 3d |Max;..}.|.for (k=|
|00005460| 30 3b 6b 3c 33 3b 6b 2b | 2b 29 66 6f 72 28 69 3d |0;k<3;k+|+)for(i=|
|00005470| 30 3b 69 3c 6e 4c 72 67 | 62 3b 69 2b 3d 32 29 7b |0;i<nLrg|b;i+=2){|
|00005480| 0d 09 09 66 6f 72 28 6a | 3d 30 3b 6a 3c 33 3b 6a |...for(j|=0;j<3;j|
|00005490| 2b 2b 29 20 6e 72 67 62 | 5b 6b 5d 5b 69 2b 31 5d |++) nrgb|[k][i+1]|
|000054a0| 5b 6a 5d 3d 6e 72 67 62 | 5b 6b 5d 5b 69 5d 5b 6a |[j]=nrgb|[k][i][j|
|000054b0| 5d 3d 28 4c 50 2d 3e 56 | 4d 61 78 2b 31 29 2a 28 |]=(LP->V|Max+1)*(|
|000054c0| 30 2e 36 36 37 2b 30 2e | 33 33 33 2a 69 2f 6e 4c |0.667+0.|333*i/nL|
|000054d0| 72 67 62 29 3b 0d 09 09 | 6e 72 67 62 5b 6b 5d 5b |rgb);...|nrgb[k][|
|000054e0| 69 2b 31 5d 5b 6b 5d 3d | 4c 50 2d 3e 56 4d 61 78 |i+1][k]=|LP->VMax|
|000054f0| 3b 0d 09 09 6e 72 67 62 | 5b 6b 5d 5b 69 5d 5b 6b |;...nrgb|[k][i][k|
|00005500| 5d 3d 30 3b 0d 09 09 69 | 66 28 6b 3d 3d 32 29 20 |]=0;...i|f(k==2) |
|00005510| 6e 72 67 62 5b 6b 5d 5b | 69 5d 5b 6b 5d 3d 28 4c |nrgb[k][|i][k]=(L|
|00005520| 50 2d 3e 56 4d 61 78 2b | 31 29 2f 32 3b 09 2f 2a |P->VMax+|1)/2;./*|
|00005530| 20 74 61 6b 65 20 73 6d | 61 6c 6c 65 72 20 73 74 | take sm|aller st|
|00005540| 65 70 2c 20 62 65 63 61 | 75 73 65 20 62 6c 75 65 |ep, beca|use blue|
|00005550| 20 67 61 69 6e 20 69 73 | 20 68 69 67 68 65 73 74 | gain is| highest|
|00005560| 20 2a 2f 0d 09 7d 0d 09 | 66 6f 72 28 6b 3d 30 3b | */..}..|for(k=0;|
|00005570| 6b 3c 33 3b 6b 2b 2b 29 | 66 6f 72 20 28 69 3d 30 |k<3;k++)|for (i=0|
|00005580| 3b 69 3c 6e 4c 72 67 62 | 3b 69 2b 2b 29 4c 72 67 |;i<nLrgb|;i++)Lrg|
|00005590| 62 5b 6b 5d 5b 69 5d 3d | 30 2e 30 3b 0d 09 0d 09 |b[k][i]=|0.0;....|
|000055a0| 2f 2a 20 6d 65 61 73 75 | 72 65 20 73 65 76 65 72 |/* measu|re sever|
|000055b0| 61 6c 20 74 69 6d 65 73 | 20 74 6f 20 6d 69 6e 69 |al times| to mini|
|000055c0| 6d 69 7a 65 20 74 68 65 | 20 65 66 66 65 63 74 20 |mize the| effect |
|000055d0| 6f 66 20 6c 75 6d 69 6e | 61 6e 63 65 20 64 72 69 |of lumin|ance dri|
|000055e0| 66 74 20 2a 2f 0d 09 53 | 65 74 50 6f 72 74 28 77 |ft */..S|etPort(w|
|000055f0| 69 6e 64 6f 77 29 3b 0d | 09 42 72 69 6e 67 54 6f |indow);.|.BringTo|
|00005600| 46 72 6f 6e 74 28 77 69 | 6e 64 6f 77 29 3b 0d 09 |Front(wi|ndow);..|
|00005610| 47 65 74 46 4e 75 6d 28 | 22 5c 70 4d 6f 6e 61 63 |GetFNum(|"\pMonac|
|00005620| 6f 22 2c 26 66 6f 6e 74 | 4e 75 6d 62 65 72 29 3b |o",&font|Number);|
|00005630| 0d 09 54 65 78 74 46 6f | 6e 74 28 66 6f 6e 74 4e |..TextFo|nt(fontN|
|00005640| 75 6d 62 65 72 29 3b 0d | 09 54 65 78 74 53 69 7a |umber);.|.TextSiz|
|00005650| 65 28 33 36 29 3b 0d 09 | 72 65 63 74 3d 77 69 6e |e(36);..|rect=win|
|00005660| 64 6f 77 2d 3e 70 6f 72 | 74 52 65 63 74 3b 0d 09 |dow->por|tRect;..|
|00005670| 62 6f 74 74 6f 6d 3d 72 | 65 63 74 2e 62 6f 74 74 |bottom=r|ect.bott|
|00005680| 6f 6d 3b 0d 09 53 65 74 | 52 65 63 74 28 26 74 65 |om;..Set|Rect(&te|
|00005690| 73 74 52 65 63 74 2c 20 | 28 72 65 63 74 2e 72 69 |stRect, |(rect.ri|
|000056a0| 67 68 74 2b 72 65 63 74 | 2e 6c 65 66 74 2d 74 65 |ght+rect|.left-te|
|000056b0| 73 74 53 69 7a 65 29 2f | 32 0d 09 09 2c 28 72 65 |stSize)/|2...,(re|
|000056c0| 63 74 2e 74 6f 70 2b 72 | 65 63 74 2e 62 6f 74 74 |ct.top+r|ect.bott|
|000056d0| 6f 6d 2d 74 65 73 74 53 | 69 7a 65 29 2f 32 0d 09 |om-testS|ize)/2..|
|000056e0| 09 2c 28 72 65 63 74 2e | 72 69 67 68 74 2b 72 65 |.,(rect.|right+re|
|000056f0| 63 74 2e 6c 65 66 74 2b | 74 65 73 74 53 69 7a 65 |ct.left+|testSize|
|00005700| 29 2f 32 0d 09 09 2c 28 | 72 65 63 74 2e 74 6f 70 |)/2...,(|rect.top|
|00005710| 2b 72 65 63 74 2e 62 6f | 74 74 6f 6d 2b 74 65 73 |+rect.bo|ttom+tes|
|00005720| 74 53 69 7a 65 29 2f 32 | 20 29 3b 0d 09 0d 09 2f |tSize)/2| );..../|
|00005730| 2a 20 73 65 74 20 75 70 | 20 62 61 63 6b 67 72 6f |* set up| backgro|
|00005740| 75 6e 64 20 2a 2f 0d 09 | 4c 50 2d 3e 74 61 62 6c |und */..|LP->tabl|
|00005750| 65 5b 32 5d 2e 72 67 62 | 2e 72 65 64 3d 4c 50 2d |e[2].rgb|.red=LP-|
|00005760| 3e 74 61 62 6c 65 5b 32 | 5d 2e 72 67 62 2e 67 72 |>table[2|].rgb.gr|
|00005770| 65 65 6e 3d 4c 50 2d 3e | 74 61 62 6c 65 5b 32 5d |een=LP->|table[2]|
|00005780| 2e 72 67 62 2e 62 6c 75 | 65 3d 0d 09 09 4c 50 2d |.rgb.blu|e=...LP-|
|00005790| 3e 56 42 61 63 6b 67 72 | 6f 75 6e 64 3c 3c 4c 50 |>VBackgr|ound<<LP|
|000057a0| 2d 3e 6c 65 66 74 53 68 | 69 66 74 3b 0d 09 4c 6f |->leftSh|ift;..Lo|
|000057b0| 61 64 4c 75 6d 69 6e 61 | 6e 63 65 73 28 64 65 76 |adLumina|nces(dev|
|000057c0| 69 63 65 2c 4c 50 2c 31 | 2c 32 29 3b 09 2f 2a 20 |ice,LP,1|,2);./* |
|000057d0| 6c 6f 61 64 20 62 61 63 | 6b 67 72 6f 75 6e 64 20 |load bac|kground |
|000057e0| 69 6e 74 6f 20 63 6c 75 | 74 20 2a 2f 0d 09 50 6d |into clu|t */..Pm|
|000057f0| 42 61 63 6b 43 6f 6c 6f | 72 28 32 29 3b 09 09 09 |BackColo|r(2);...|
|00005800| 09 2f 2a 20 6f 75 72 20 | 62 61 63 6b 67 72 6f 75 |./* our |backgrou|
|00005810| 6e 64 20 2a 2f 0d 09 45 | 72 61 73 65 52 65 63 74 |nd */..E|raseRect|
|00005820| 28 26 72 65 63 74 29 3b | 0d 09 50 6d 42 61 63 6b |(&rect);|..PmBack|
|00005830| 43 6f 6c 6f 72 28 31 29 | 3b 09 09 09 09 2f 2a 20 |Color(1)|;..../* |
|00005840| 6f 75 72 20 74 65 73 74 | 20 6c 75 6d 69 6e 61 6e |our test| luminan|
|00005850| 63 65 20 2a 2f 0d 09 45 | 72 61 73 65 4f 76 61 6c |ce */..E|raseOval|
|00005860| 28 26 74 65 73 74 52 65 | 63 74 29 3b 0d 09 46 6c |(&testRe|ct);..Fl|
|00005870| 75 73 68 45 76 65 6e 74 | 73 28 65 76 65 72 79 45 |ushEvent|s(everyE|
|00005880| 76 65 6e 74 2c 30 29 3b | 0d 09 72 65 61 64 4e 75 |vent,0);|..readNu|
|00005890| 6d 62 65 72 3d 30 3b 09 | 2f 2a 20 69 6e 69 74 69 |mber=0;.|/* initi|
|000058a0| 61 6c 69 7a 65 20 74 6f | 20 63 6f 75 6e 74 20 74 |alize to| count t|
|000058b0| 68 65 20 6e 75 6d 62 65 | 72 20 6f 66 20 72 65 61 |he numbe|r of rea|
|000058c0| 64 69 6e 67 20 2a 2f 0d | 09 66 6f 72 28 6a 3d 30 |ding */.|.for(j=0|
|000058d0| 3b 6a 3c 63 79 63 6c 65 | 73 3b 6a 2b 2b 29 09 7b |;j<cycle|s;j++).{|
|000058e0| 0d 09 09 66 6f 72 20 28 | 6b 3d 2d 31 3b 6b 3c 33 |...for (|k=-1;k<3|
|000058f0| 3b 6b 2b 2b 29 09 7b 0d | 09 09 09 69 66 28 6b 3c |;k++).{.|...if(k<|
|00005900| 30 29 20 69 69 3d 6e 4c | 3b 0d 09 09 09 65 6c 73 |0) ii=nL|;....els|
|00005910| 65 20 69 69 3d 6e 4c 72 | 67 62 3b 0d 09 09 09 66 |e ii=nLr|gb;....f|
|00005920| 6f 72 20 28 69 3d 30 3b | 69 3c 69 69 3b 69 2b 2b |or (i=0;|i<ii;i++|
|00005930| 29 7b 0d 09 09 09 09 2f | 2a 20 73 65 74 20 75 70 |){...../|* set up|
|00005940| 20 74 65 73 74 20 2a 2f | 0d 09 09 09 09 53 65 74 | test */|.....Set|
|00005950| 52 65 63 74 28 26 6c 61 | 62 65 6c 52 65 63 74 2c |Rect(&la|belRect,|
|00005960| 30 2c 62 6f 74 74 6f 6d | 2d 34 30 2c 33 30 30 2c |0,bottom|-40,300,|
|00005970| 62 6f 74 74 6f 6d 29 3b | 0d 09 09 09 09 53 65 74 |bottom);|.....Set|
|00005980| 50 6f 72 74 28 77 69 6e | 64 6f 77 29 3b 0d 09 09 |Port(win|dow);...|
|00005990| 09 09 50 6d 42 61 63 6b | 43 6f 6c 6f 72 28 32 29 |..PmBack|Color(2)|
|000059a0| 3b 0d 09 09 09 09 45 72 | 61 73 65 52 65 63 74 28 |;.....Er|aseRect(|
|000059b0| 26 6c 61 62 65 6c 52 65 | 63 74 29 3b 0d 09 09 09 |&labelRe|ct);....|
|000059c0| 09 50 6d 46 6f 72 65 43 | 6f 6c 6f 72 28 63 6c 75 |.PmForeC|olor(clu|
|000059d0| 74 53 69 7a 65 2d 31 29 | 3b 09 09 09 09 2f 2a 20 |tSize-1)|;..../* |
|000059e0| 62 6c 61 63 6b 20 2a 2f | 0d 09 09 09 09 4d 6f 76 |black */|.....Mov|
|000059f0| 65 54 6f 28 30 2c 62 6f | 74 74 6f 6d 29 3b 0d 09 |eTo(0,bo|ttom);..|
|00005a00| 09 09 09 69 66 28 6b 3c | 30 29 20 44 72 61 77 50 |...if(k<|0) DrawP|
|00005a10| 72 69 6e 74 66 28 22 25 | 33 64 22 2c 56 5b 69 5d |rintf("%|3d",V[i]|
|00005a20| 29 3b 0d 09 09 09 09 65 | 6c 73 65 20 44 72 61 77 |);.....e|lse Draw|
|00005a30| 50 72 69 6e 74 66 28 22 | 25 33 64 25 34 64 25 34 |Printf("|%3d%4d%4|
|00005a40| 64 22 2c 6b 2c 6e 72 67 | 62 5b 6b 5d 5b 69 5d 5b |d",k,nrg|b[k][i][|
|00005a50| 30 5d 2c 6e 72 67 62 5b | 6b 5d 5b 69 5d 5b 31 5d |0],nrgb[|k][i][1]|
|00005a60| 2c 6e 72 67 62 5b 6b 5d | 5b 69 5d 5b 32 5d 29 3b |,nrgb[k]|[i][2]);|
|00005a70| 0d 09 09 09 09 53 65 74 | 50 6f 72 74 28 6f 6c 64 |.....Set|Port(old|
|00005a80| 57 69 6e 64 6f 77 29 3b | 0d 09 09 09 09 72 65 61 |Window);|.....rea|
|00005a90| 64 4e 75 6d 62 65 72 2b | 2b 3b 0d 09 09 09 09 69 |dNumber+|+;.....i|
|00005aa0| 66 28 21 61 75 74 6f 6d | 61 74 69 63 29 7b 0d 09 |f(!autom|atic){..|
|00005ab0| 09 09 09 09 70 72 69 6e | 74 66 28 22 25 64 20 6f |....prin|tf("%d o|
|00005ac0| 75 74 20 6f 66 20 25 64 | 20 72 65 61 64 69 6e 67 |ut of %d| reading|
|00005ad0| 73 3a 5c 74 22 2c 72 65 | 61 64 4e 75 6d 62 65 72 |s:\t",re|adNumber|
|00005ae0| 2c 72 65 61 64 54 6f 74 | 61 6c 29 3b 09 0d 09 09 |,readTot|al);....|
|00005af0| 09 09 7d 0d 09 09 09 09 | 69 66 28 6b 3c 30 29 20 |..}.....|if(k<0) |
|00005b00| 7b 0d 09 09 09 09 09 6c | 75 6d 69 6e 61 6e 63 65 |{......l|uminance|
|00005b10| 3d 47 65 74 41 4c 75 6d | 69 6e 61 6e 63 65 28 4c |=GetALum|inance(L|
|00005b20| 50 2c 64 65 76 69 63 65 | 2c 66 72 61 6d 65 73 2c |P,device|,frames,|
|00005b30| 6c 75 6d 69 6e 61 6e 63 | 65 50 65 72 56 6f 6c 74 |luminanc|ePerVolt|
|00005b40| 61 67 65 2c 31 0d 09 09 | 09 09 09 09 2c 56 5b 69 |age,1...|....,V[i|
|00005b50| 5d 2c 56 5b 69 5d 2c 56 | 5b 69 5d 29 3b 0d 09 09 |],V[i],V|[i]);...|
|00005b60| 09 09 09 6c 75 6d 69 6e | 61 6e 63 65 2d 3d 64 61 |...lumin|ance-=da|
|00005b70| 72 6b 4c 75 6d 69 6e 61 | 6e 63 65 3b 0d 09 09 09 |rkLumina|nce;....|
|00005b80| 09 09 4c 5b 69 5d 20 2b | 3d 20 6c 75 6d 69 6e 61 |..L[i] +|= lumina|
|00005b90| 6e 63 65 2f 63 79 63 6c | 65 73 3b 0d 09 09 09 09 |nce/cycl|es;.....|
|00005ba0| 7d 0d 09 09 09 09 65 6c | 73 65 20 7b 0d 09 09 09 |}.....el|se {....|
|00005bb0| 09 09 6c 75 6d 69 6e 61 | 6e 63 65 3d 47 65 74 41 |..lumina|nce=GetA|
|00005bc0| 4c 75 6d 69 6e 61 6e 63 | 65 28 4c 50 2c 64 65 76 |Luminanc|e(LP,dev|
|00005bd0| 69 63 65 2c 66 72 61 6d | 65 73 2c 6c 75 6d 69 6e |ice,fram|es,lumin|
|00005be0| 61 6e 63 65 50 65 72 56 | 6f 6c 74 61 67 65 2c 31 |ancePerV|oltage,1|
|00005bf0| 0d 09 09 09 09 09 09 2c | 6e 72 67 62 5b 6b 5d 5b |.......,|nrgb[k][|
|00005c00| 69 5d 5b 30 5d 2c 6e 72 | 67 62 5b 6b 5d 5b 69 5d |i][0],nr|gb[k][i]|
|00005c10| 5b 31 5d 2c 6e 72 67 62 | 5b 6b 5d 5b 69 5d 5b 32 |[1],nrgb|[k][i][2|
|00005c20| 5d 29 3b 0d 09 09 09 09 | 09 6c 75 6d 69 6e 61 6e |]);.....|.luminan|
|00005c30| 63 65 2d 3d 64 61 72 6b | 4c 75 6d 69 6e 61 6e 63 |ce-=dark|Luminanc|
|00005c40| 65 3b 0d 09 09 09 09 09 | 4c 72 67 62 5b 6b 5d 5b |e;......|Lrgb[k][|
|00005c50| 69 5d 20 2b 3d 20 6c 75 | 6d 69 6e 61 6e 63 65 2f |i] += lu|minance/|
|00005c60| 63 79 63 6c 65 73 3b 0d | 09 09 09 09 7d 0d 09 09 |cycles;.|....}...|
|00005c70| 09 7d 0d 09 09 7d 0d 09 | 7d 0d 09 47 44 44 69 73 |.}...}..|}..GDDis|
|00005c80| 70 6f 73 65 57 69 6e 64 | 6f 77 31 28 77 69 6e 64 |poseWind|ow1(wind|
|00005c90| 6f 77 29 3b 0d 09 53 65 | 74 50 6f 72 74 28 6f 6c |ow);..Se|tPort(ol|
|00005ca0| 64 57 69 6e 64 6f 77 29 | 3b 0d 09 53 65 74 47 44 |dWindow)|;..SetGD|
|00005cb0| 65 76 69 63 65 28 6f 6c | 64 44 65 76 69 63 65 29 |evice(ol|dDevice)|
|00005cc0| 3b 0d 09 47 44 52 65 73 | 74 6f 72 65 47 61 6d 6d |;..GDRes|toreGamm|
|00005cd0| 61 28 64 65 76 69 63 65 | 29 3b 0d 09 47 44 52 65 |a(device|);..GDRe|
|00005ce0| 73 74 6f 72 65 44 65 76 | 69 63 65 43 6c 75 74 28 |storeDev|iceClut(|
|00005cf0| 64 65 76 69 63 65 29 3b | 0d 09 65 72 72 6f 72 3d |device);|..error=|
|00005d00| 53 65 74 44 65 70 74 68 | 28 64 65 76 69 63 65 2c |SetDepth|(device,|
|00005d10| 6f 6c 64 50 69 78 65 6c | 53 69 7a 65 2c 31 3c 3c |oldPixel|Size,1<<|
|00005d20| 67 64 44 65 76 54 79 70 | 65 2c 6f 6c 64 49 73 43 |gdDevTyp|e,oldIsC|
|00005d30| 6f 6c 6f 72 29 3b 0d 09 | 0d 09 2f 2a 20 70 6f 6c |olor);..|../* pol|
|00005d40| 79 6e 6f 6d 69 61 6c 20 | 61 6e 64 20 71 75 61 64 |ynomial |and quad|
|00005d50| 72 61 74 69 63 20 66 69 | 74 73 20 2a 2f 0d 09 6d |ratic fi|ts */..m|
|00005d60| 61 3d 4d 41 58 5f 43 4f | 45 46 46 49 43 49 45 4e |a=MAX_CO|EFFICIEN|
|00005d70| 54 53 3b 0d 09 78 3d 76 | 65 63 74 6f 72 28 31 2c |TS;..x=v|ector(1,|
|00005d80| 6e 4c 29 3b 0d 09 79 3d | 76 65 63 74 6f 72 28 31 |nL);..y=|vector(1|
|00005d90| 2c 6e 4c 29 3b 0d 09 73 | 69 67 3d 76 65 63 74 6f |,nL);..s|ig=vecto|
|00005da0| 72 28 31 2c 6e 4c 29 3b | 0d 09 61 3d 76 65 63 74 |r(1,nL);|..a=vect|
|00005db0| 6f 72 28 31 2c 6e 4c 29 | 3b 0d 09 75 3d 6d 61 74 |or(1,nL)|;..u=mat|
|00005dc0| 72 69 78 28 31 2c 6e 4c | 2c 31 2c 6d 61 29 3b 0d |rix(1,nL|,1,ma);.|
|00005dd0| 09 76 3d 6d 61 74 72 69 | 78 28 31 2c 6d 61 2c 31 |.v=matri|x(1,ma,1|
|00005de0| 2c 6d 61 29 3b 0d 09 77 | 3d 76 65 63 74 6f 72 28 |,ma);..w|=vector(|
|00005df0| 31 2c 6d 61 29 3b 0d 09 | 63 76 6d 3d 6d 61 74 72 |1,ma);..|cvm=matr|
|00005e00| 69 78 28 31 2c 6d 61 2c | 31 2c 6d 61 29 3b 0d 09 |ix(1,ma,|1,ma);..|
|00005e10| 66 6f 72 28 69 3d 30 3b | 69 3c 6e 4c 3b 69 2b 2b |for(i=0;|i<nL;i++|
|00005e20| 29 7b 0d 09 09 78 5b 69 | 2b 31 5d 3d 56 5b 69 5d |){...x[i|+1]=V[i]|
|00005e30| 3b 0d 09 09 79 5b 69 2b | 31 5d 3d 4c 5b 69 5d 3b |;...y[i+|1]=L[i];|
|00005e40| 0d 09 09 73 69 67 5b 69 | 2b 31 5d 3d 31 30 2e 30 |...sig[i|+1]=10.0|
|00005e50| 3b 0d 09 7d 0d 09 73 76 | 64 66 69 74 28 78 2c 79 |;..}..sv|dfit(x,y|
|00005e60| 2c 73 69 67 2c 6e 4c 2c | 61 2c 6d 61 2c 75 2c 76 |,sig,nL,|a,ma,u,v|
|00005e70| 2c 77 2c 26 63 68 69 73 | 71 2c 66 70 6f 6c 79 29 |,w,&chis|q,fpoly)|
|00005e80| 3b 09 2f 2a 20 6d 61 2d | 31 74 68 20 6f 72 64 65 |;./* ma-|1th orde|
|00005e90| 72 20 70 6f 6c 79 6e 6f | 6d 69 61 6c 20 63 75 72 |r polyno|mial cur|
|00005ea0| 76 65 20 66 69 74 20 2a | 2f 0d 09 73 76 64 76 61 |ve fit *|/..svdva|
|00005eb0| 72 28 76 2c 6d 61 2c 77 | 2c 63 76 6d 29 3b 0d 09 |r(v,ma,w|,cvm);..|
|00005ec0| 69 66 28 6d 61 3e 4d 41 | 58 5f 43 4f 45 46 46 49 |if(ma>MA|X_COEFFI|
|00005ed0| 43 49 45 4e 54 53 29 50 | 72 69 6e 74 66 45 78 69 |CIENTS)P|rintfExi|
|00005ee0| 74 28 22 45 72 72 6f 72 | 3a 20 74 6f 6f 20 6d 61 |t("Error|: too ma|
|00005ef0| 6e 79 20 63 6f 65 66 66 | 69 63 69 65 6e 74 73 5c |ny coeff|icients\|
|00005f00| 30 30 37 5c 6e 22 29 3b | 0d 09 4c 50 2d 3e 63 6f |007\n");|..LP->co|
|00005f10| 65 66 66 69 63 69 65 6e | 74 73 3d 6d 61 3b 0d 09 |efficien|ts=ma;..|
|00005f20| 66 6f 72 28 69 3d 30 3b | 69 3c 6d 61 3b 69 2b 2b |for(i=0;|i<ma;i++|
|00005f30| 29 20 4c 50 2d 3e 70 5b | 69 5d 3d 61 5b 69 2b 31 |) LP->p[|i]=a[i+1|
|00005f40| 5d 3b 0d 09 70 72 69 6e | 74 66 28 22 4c 28 56 29 |];..prin|tf("L(V)|
|00005f50| 20 3d 22 29 3b 0d 09 66 | 6f 72 28 69 3d 30 3b 69 | =");..f|or(i=0;i|
|00005f60| 3c 6d 61 3b 69 2b 2b 29 | 20 70 72 69 6e 74 66 28 |<ma;i++)| printf(|
|00005f70| 22 20 2b 20 25 36 67 20 | 56 5e 25 64 22 2c 61 5b |" + %6g |V^%d",a[|
|00005f80| 69 2b 31 5d 2c 69 29 3b | 0d 09 70 72 69 6e 74 66 |i+1],i);|..printf|
|00005f90| 28 22 2e 20 20 63 68 69 | 73 71 20 25 67 5c 6e 22 |(". chi|sq %g\n"|
|00005fa0| 2c 63 68 69 73 71 29 3b | 0d 09 73 76 64 66 69 74 |,chisq);|..svdfit|
|00005fb0| 28 78 2c 79 2c 73 69 67 | 2c 6e 4c 2c 61 2c 33 2c |(x,y,sig|,nL,a,3,|
|00005fc0| 75 2c 76 2c 77 2c 26 63 | 68 69 73 71 2c 66 70 6f |u,v,w,&c|hisq,fpo|
|00005fd0| 6c 79 29 3b 09 2f 2a 20 | 32 6e 64 20 6f 72 64 65 |ly);./* |2nd orde|
|00005fe0| 72 20 70 6f 6c 79 6e 6f | 6d 69 61 6c 20 63 75 72 |r polyno|mial cur|
|00005ff0| 76 65 20 66 69 74 20 2a | 2f 0d 09 73 76 64 76 61 |ve fit *|/..svdva|
|00006000| 72 28 76 2c 33 2c 77 2c | 63 76 6d 29 3b 0d 09 70 |r(v,3,w,|cvm);..p|
|00006010| 72 69 6e 74 66 28 22 5c | 6e 71 75 61 64 72 61 74 |rintf("\|nquadrat|
|00006020| 69 63 20 66 69 74 3a 5c | 6e 5c 6e 22 29 3b 0d 09 |ic fit:\|n\n");..|
|00006030| 66 6f 72 28 69 3d 30 3b | 69 3c 33 3b 69 2b 2b 29 |for(i=0;|i<3;i++)|
|00006040| 20 4c 50 2d 3e 71 5b 69 | 5d 3d 61 5b 69 2b 31 5d | LP->q[i|]=a[i+1]|
|00006050| 3b 0d 09 70 72 69 6e 74 | 66 28 22 4c 28 56 29 20 |;..print|f("L(V) |
|00006060| 3d 22 29 3b 0d 09 66 6f | 72 28 69 3d 30 3b 69 3c |=");..fo|r(i=0;i<|
|00006070| 33 3b 69 2b 2b 29 20 70 | 72 69 6e 74 66 28 22 20 |3;i++) p|rintf(" |
|00006080| 2b 20 25 67 20 56 5e 25 | 64 22 2c 61 5b 69 2b 31 |+ %g V^%|d",a[i+1|
|00006090| 5d 2c 69 29 3b 0d 09 70 | 72 69 6e 74 66 28 22 2e |],i);..p|rintf(".|
|000060a0| 20 20 63 68 69 73 71 20 | 25 67 5c 6e 22 2c 63 68 | chisq |%g\n",ch|
|000060b0| 69 73 71 29 3b 0d 09 66 | 72 65 65 5f 76 65 63 74 |isq);..f|ree_vect|
|000060c0| 6f 72 28 78 2c 31 2c 6e | 4c 29 3b 0d 09 66 72 65 |or(x,1,n|L);..fre|
|000060d0| 65 5f 76 65 63 74 6f 72 | 28 79 2c 31 2c 6e 4c 29 |e_vector|(y,1,nL)|
|000060e0| 3b 0d 09 66 72 65 65 5f | 76 65 63 74 6f 72 28 73 |;..free_|vector(s|
|000060f0| 69 67 2c 31 2c 6e 4c 29 | 3b 0d 09 66 72 65 65 5f |ig,1,nL)|;..free_|
|00006100| 76 65 63 74 6f 72 28 61 | 2c 31 2c 6e 4c 29 3b 0d |vector(a|,1,nL);.|
|00006110| 09 66 72 65 65 5f 6d 61 | 74 72 69 78 28 75 2c 31 |.free_ma|trix(u,1|
|00006120| 2c 6e 4c 2c 31 2c 6d 61 | 29 3b 0d 09 66 72 65 65 |,nL,1,ma|);..free|
|00006130| 5f 6d 61 74 72 69 78 28 | 76 2c 31 2c 6d 61 2c 31 |_matrix(|v,1,ma,1|
|00006140| 2c 6d 61 29 3b 0d 09 66 | 72 65 65 5f 76 65 63 74 |,ma);..f|ree_vect|
|00006150| 6f 72 28 77 2c 31 2c 6d | 61 29 3b 0d 09 66 72 65 |or(w,1,m|a);..fre|
|00006160| 65 5f 6d 61 74 72 69 78 | 28 63 76 6d 2c 31 2c 6d |e_matrix|(cvm,1,m|
|00006170| 61 2c 31 2c 6d 61 29 3b | 0d 09 65 3d 30 2e 30 3b |a,1,ma);|..e=0.0;|
|00006180| 0d 09 66 6f 72 28 69 3d | 30 3b 69 3c 6e 4c 3b 69 |..for(i=|0;i<nL;i|
|00006190| 2b 2b 29 7b 0d 09 09 66 | 3d 30 2e 30 3b 0d 09 09 |++){...f|=0.0;...|
|000061a0| 56 56 3d 31 2e 30 3b 0d | 09 09 66 6f 72 28 6a 3d |VV=1.0;.|..for(j=|
|000061b0| 30 3b 6a 3c 4c 50 2d 3e | 63 6f 65 66 66 69 63 69 |0;j<LP->|coeffici|
|000061c0| 65 6e 74 73 3b 6a 2b 2b | 29 7b 0d 09 09 09 66 2b |ents;j++|){....f+|
|000061d0| 3d 4c 50 2d 3e 70 5b 6a | 5d 2a 56 56 3b 0d 09 09 |=LP->p[j|]*VV;...|
|000061e0| 09 56 56 2a 3d 56 5b 69 | 5d 3b 0d 09 09 7d 0d 09 |.VV*=V[i|];...}..|
|000061f0| 09 65 2b 3d 28 4c 5b 69 | 5d 2d 66 29 2a 28 4c 5b |.e+=(L[i|]-f)*(L[|
|00006200| 69 5d 2d 66 29 3b 0d 09 | 7d 0d 09 4c 50 2d 3e 70 |i]-f);..|}..LP->p|
|00006210| 6f 6c 79 6e 6f 6d 69 61 | 6c 45 72 72 6f 72 3d 73 |olynomia|lError=s|
|00006220| 71 72 74 28 65 2f 6e 4c | 29 3b 0d 09 65 3d 30 2e |qrt(e/nL|);..e=0.|
|00006230| 30 3b 0d 09 66 6f 72 28 | 69 3d 30 3b 69 3c 6e 4c |0;..for(|i=0;i<nL|
|00006240| 3b 69 2b 2b 29 7b 0d 09 | 09 66 3d 30 2e 30 3b 0d |;i++){..|.f=0.0;.|
|00006250| 09 09 56 56 3d 31 2e 30 | 3b 0d 09 09 66 6f 72 28 |..VV=1.0|;...for(|
|00006260| 6a 3d 30 3b 6a 3c 33 3b | 6a 2b 2b 29 7b 0d 09 09 |j=0;j<3;|j++){...|
|00006270| 09 66 2b 3d 4c 50 2d 3e | 71 5b 6a 5d 2a 56 56 3b |.f+=LP->|q[j]*VV;|
|00006280| 0d 09 09 09 56 56 2a 3d | 56 5b 69 5d 3b 0d 09 09 |....VV*=|V[i];...|
|00006290| 7d 0d 09 09 65 2b 3d 28 | 4c 5b 69 5d 2d 66 29 2a |}...e+=(|L[i]-f)*|
|000062a0| 28 4c 5b 69 5d 2d 66 29 | 3b 0d 09 7d 0d 09 4c 50 |(L[i]-f)|;..}..LP|
|000062b0| 2d 3e 71 75 61 64 72 61 | 74 69 63 45 72 72 6f 72 |->quadra|ticError|
|000062c0| 3d 73 71 72 74 28 65 2f | 6e 4c 29 3b 0d 09 0d 09 |=sqrt(e/|nL);....|
|000062d0| 2f 2a 20 70 6f 77 65 72 | 20 6c 61 77 20 66 69 74 |/* power| law fit|
|000062e0| 20 2a 2f 0d 09 2f 2a 20 | 4c 3d 70 5b 31 5d 2b 52 | */../* |L=p[1]+R|
|000062f0| 65 63 74 69 66 79 28 70 | 5b 32 5d 2b 70 5b 33 5d |ectify(p|[2]+p[3]|
|00006300| 2a 56 29 5e 70 5b 34 5d | 20 2a 2f 0d 09 70 3d 76 |*V)^p[4]| */..p=v|
|00006310| 65 63 74 6f 72 28 31 2c | 34 29 3b 09 2f 2a 20 69 |ector(1,|4);./* i|
|00006320| 6e 69 74 69 61 6c 20 73 | 74 61 72 74 69 6e 67 20 |nitial s|tarting |
|00006330| 70 6f 69 6e 74 20 2a 2f | 0d 09 2f 2a 0d 09 09 49 |point */|../*...I|
|00006340| 74 20 69 73 20 6e 65 63 | 65 73 73 61 72 79 20 74 |t is nec|essary t|
|00006350| 6f 20 68 61 76 65 20 61 | 20 72 65 61 73 6f 6e 61 |o have a| reasona|
|00006360| 62 6c 65 20 73 74 61 72 | 74 69 6e 67 20 70 6f 69 |ble star|ting poi|
|00006370| 6e 74 20 6f 72 20 74 68 | 65 20 73 65 61 72 63 68 |nt or th|e search|
|00006380| 20 63 61 6e 20 67 65 74 | 0d 09 09 73 74 75 63 6b | can get|...stuck|
|00006390| 20 6f 75 74 20 69 6e 20 | 74 68 65 20 62 6f 6f 6e | out in |the boon|
|000063a0| 64 6f 63 6b 73 2e 20 53 | 69 6e 63 65 20 74 68 65 |docks. S|ince the|
|000063b0| 20 73 65 61 72 63 68 20 | 69 73 20 71 75 69 74 65 | search |is quite|
|000063c0| 20 73 6c 6f 77 20 69 74 | 20 69 73 20 64 65 73 69 | slow it| is desi|
|000063d0| 72 61 62 6c 65 20 74 6f | 0d 09 09 67 69 76 65 20 |rable to|...give |
|000063e0| 69 74 20 61 73 20 67 6f | 6f 64 20 61 20 73 74 61 |it as go|od a sta|
|000063f0| 72 74 69 6e 67 20 70 6f | 69 6e 74 20 61 73 20 70 |rting po|int as p|
+--------+-------------------------+-------------------------+--------+--------+
Only 25.0 KB of data is shown above.